Subject: Re: crossbuild of current failure
To: None <current-users@netbsd.org>
From: Valeriy E. Ushakov <uwe@ptc.spbu.ru>
List: current-users
Date: 04/02/2003 19:15:20
On Wed, Apr 02, 2003 at 15:53:11 +0100, Dunc wrote:

> sum.lo: In function `set_sunsum':
> sum.lo(.text+0x9c): undefined reference to `be16toh'
> sum.lo(.text+0xb9): undefined reference to `be16toh'
> bbinfo.lo: In function `shared_bbinfo_setboot':
> bbinfo.lo(.text+0x4b4): undefined reference to `le32toh'
> etc.....

Hmm...

    $ cd path/to/src-current
    $ egrep '[bl]e(16|32)toh' sys/sys/*
    sys/sys/endian.h:#define be16toh(x)     htobe16(x)
    sys/sys/endian.h:#define be32toh(x)     htobe32(x)
    sys/sys/endian.h:#define le16toh(x)     htole16(x)
    sys/sys/endian.h:#define le32toh(x)     htole32(x)

and on a NetBSD host <sys/endian.h> is pulled in by <sys/types.h>.


For other platforms we have this in tools/compat/compat_defs.h:

    #ifndef HAVE_SYS_ENDIAN_H
    #if WORDS_BIGENDIAN
    #define htobe16(x)      (x)
    ...
    #else
    #define htobe16(x)      bswap16((u_int16_t)(x))
    ...
    #endif
    #define be16toh(x)      htobe16(x)
    ...
    #endif

and FreeBSD doesn't have <sys/endian.h>


I'll cvs update and try building tools.  I have 4.6-STABLE as of
mid-summer 2002, but I don't think that should be relevant.

At least if that indeed have been broken, we know it's been broken
within the past few days (as I said, I did a successful sparc build on
Mar 31).

SY, Uwe
-- 
uwe@ptc.spbu.ru                         |       Zu Grunde kommen
http://www.ptc.spbu.ru/~uwe/            |       Ist zu Grunde gehen