NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: toolchain/42470: tools doesn't build on FreeBSD 7.2
The following reply was made to PR toolchain/42470; it has been noted by GNATS.
From: henning petersen <henning.petersen%t-online.de@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc: asau%inbox.ru@localhost, toolchain-manager%netbsd.org@localhost,
gnats-admin%netbsd.org@localhost,
netbsd-bugs%netbsd.org@localhost
Subject: Re: toolchain/42470: tools doesn't build on FreeBSD 7.2
Date: Fri, 18 Dec 2009 15:04:46 +0100
Am 18.12.2009 14:20, schrieb asau%inbox.ru@localhost:
>> Number: 42470
>> Category: toolchain
>> Synopsis: tools doesn't build on FreeBSD 7.2
>> Confidential: no
>> Severity: serious
>> Priority: medium
>> Responsible: toolchain-manager
>> State: open
>> Class: sw-bug
>> Submitter-Id: net
>> Arrival-Date: Fri Dec 18 13:20:00 +0000 2009
>> Originator: Aleksej Saushev
>> Release:
>> Organization:
>> Environment:
>>
> FreeBSD 7.2-RELEASE-p4 i386
>
>> Description:
>>
> "build.sh tools" breaks at:
>
> # link binstall/xinstall
> cc -O -I/var/home/asau/wrk/netbsd/src/../obj/tools/compat
> -I/var/home/asau/wrk/netbsd/src/../obj/tools/compat/include
> -I/var/home/asau/wrk/netbsd/src/tools/binstall/../compat
> -DHAVE_NBTOOL_CONFIG_H=1 -D_FILE_OFFSET_BITS=64
> -I/var/home/asau/wrk/netbsd/src/tools/binstall/../compat/sys
> -DTARGET_STRIP=\"/var/home/asau/wrk/netbsd/src/../obj/tooldir.FreeBSD-7.2-RELEASE-p4-i386/bin/i486--netbsdelf-strip\"
> -I/var/home/asau/wrk/netbsd/src/usr.sbin/mtree -o xinstall xinstall.lo
> getid.lo -L/var/home/asau/wrk/netbsd/src/../obj/tools/compat -lnbcompat -lz
> xinstall.lo(.text+0xf3b): In function `do_symlink':
> : warning: warning: mktemp() possibly used unsafely; consider using mkstemp()
> /var/home/asau/wrk/netbsd/src/../obj/tools/compat/libnbcompat.a(sha2.lo)(.text+0x1533):
> In function `SHA512_Final':
> : undefined reference to `be64enc'
>
> The problem is that be64enc is defined in sys/endian.h, but it is:
> "static __inline void be64enc(void *pp, uint64_t u)"
>
> common/lib/libc/hash/sha2/sha2.c contains following:
>
> #if HAVE_NBTOOL_CONFIG_H
> # if HAVE_SYS_ENDIAN_H
> # include<sys/endian.h>
> # else
>
> but nbtool_config.h doesn't define HAVE_SYS_ENDIAN_H,
> it defines HAVE_MACHINE_ENDIAN_H instead.
> In fact, tools/compat/nbtool_config.h.in doesn't have HAVE_SYS_ENDIAN_H,
> hence no traces of it in the output.
>
> tools/compat/configure.ac contains test:
>
> AC_CHECK_DECLS([be16enc, le16enc, be16dec, le16dec, be32enc, le32enc,
> be32dec, le32dec, be64enc, le64enc, be64dec, le64dec],,,
> [#include<sys/endian.h>])
>
> but it doesn't check sys/endian.h presense.
>
>
>> How-To-Repeat:
>>
> ./build.sh -m i386 tools
>
>> Fix:
>>
> sha2.c references be64enc still, I don't know how this is to be handled.
> For me this change suffices (after running autoconf in tools/compat):
>
> Index: tools/compat/configure.ac
> ===================================================================
> RCS file:
> /home/asau/ext/wrk/netbsd/../../netbsd/src/tools/compat/configure.ac,v
> retrieving revision 1.70
> diff -u -r1.70 configure.ac
> --- tools/compat/configure.ac 16 Jun 2009 22:35:34 -0000 1.70
> +++ tools/compat/configure.ac 18 Dec 2009 13:09:21 -0000
> @@ -80,7 +80,7 @@
> AC_HEADER_DIRENT
> AC_CHECK_HEADERS(sys/mtio.h sys/sysmacros.h sys/syslimits.h \
> getopt.h features.h malloc.h sys/poll.h stddef.h)
> -AC_CHECK_HEADERS(sys/bswap.h machine/bswap.h sys/cdefs.h machine/endian.h \
> +AC_CHECK_HEADERS(sys/bswap.h machine/bswap.h sys/cdefs.h machine/endian.h
> sys/endian.h \
> sys/featuretest.h err.h inttypes.h libgen.h paths.h stdint.h util.h
> \
> resolv.h arpa/nameser.h,,
> [test -f include/$ac_header || touch include/$ac_header])
> Index: tools/compat/nbtool_config.h.in
> ===================================================================
> RCS file:
> /home/asau/ext/wrk/netbsd/../../netbsd/src/tools/compat/nbtool_config.h.in,v
> retrieving revision 1.23
> diff -u -r1.23 nbtool_config.h.in
> --- tools/compat/nbtool_config.h.in 16 Jun 2009 22:35:34 -0000 1.23
> +++ tools/compat/nbtool_config.h.in 18 Dec 2009 12:58:11 -0000
> @@ -336,6 +336,9 @@
> /* Define if you have the<machine/endian.h> header file. */
> #undef HAVE_MACHINE_ENDIAN_H
>
> +/* Define if you have the<sys/endian.h> header file. */
> +#undef HAVE_SYS_ENDIAN_H
> +
> /* Define if you have the<malloc.h> header file. */
> #undef HAVE_MALLOC_H
>
>
>
>
>
>
You have to regenerate "configure" and "nbtool_config.h.in" from
"configure.ac" with autoconfig.
cd ${SRCDIR}/tools/compat && ${TOOLDIR}/bin/nbmake-${MACHINE}
regen.
You can look at 42440 from 11.12.2009 .
henning.petersen%t-online.de@localhost
Home |
Main Index |
Thread Index |
Old Index