Subject: Linux crosscompile problem
To: None <current-users@netbsd.org>
From: Juraj Hercek <nbsd@hck.sk>
List: current-users
Date: 01/29/2007 16:50:55
Hi,

I'm having troubles compiling netbsd-current on linux host.

...
dependall ===> tools/makefs
       link  makefs/makefs
cd9660_debug.lo: In function `debug_get_encoded_number':
cd9660_debug.c:(.text+0x16b): undefined reference to `le16dec'
cd9660_debug.c:(.text+0x178): undefined reference to `le32dec'
cd9660_debug.c:(.text+0x186): undefined reference to `be16dec'
cd9660_debug.c:(.text+0x196): undefined reference to `be32dec'
cd9660_debug.c:(.text+0x1a0): undefined reference to `le16dec'
cd9660_debug.c:(.text+0x1ad): undefined reference to `le32dec'
cd9660_debug.lo: In function `debug_print_tree':
cd9660_debug.c:(.text+0x9cf): undefined reference to `le32dec'
cd9660_debug.c:(.text+0x9f9): undefined reference to `le32dec'
collect2: ld returned 1 exit status

*** Failed target:  makefs
*** Failed command: cc -O -I. 
-I/home/bsd/work/netbsd/src/../obj/tools/compat 
-I/home/bsd/work/netbsd/src/../obj/tools/compat/include 
-I/home/bsd/work/netbsd/src/tools/makefs/../compat 
-DHAVE_NBTOOL_CONFIG_H=1 -D_FILE_OFFSET_BITS=64 
-I/home/bsd/work/netbsd/src/tools/makefs/../../usr.sbin/makefs 
-I/home/bsd/work/netbsd/src/sbin/mknod 
-I/home/bsd/work/netbsd/src/usr.sbin/mtree 
-I/home/bsd/work/netbsd/src/sys/fs/cd9660 -o makefs buf.lo cd9660.lo 
cd9660_strings.lo cd9660_debug.lo cd9660_eltorito.lo cd9660_write.lo 
cd9660_conversion.lo iso9660_rrip.lo ffs.lo ffs_alloc.lo ffs_balloc.lo 
ffs_bswap.lo ffs_subr.lo ffs_tables.lo getid.lo makefs.lo misc.lo 
mkfs.lo pack_dev.lo spec.lo ufs_bmap.lo walk.lo 
-L/home/bsd/work/netbsd/src/../obj/tools/compat -lnbcompat -lz
*** Error code 1
...

It seems that le16dec is not defined on linux host (if that matters):

[linux]$ find /usr/include | xargs grep "le16dec"
[linux]$
---
[netbsd]$ find /usr/include | xargs grep "le16dec"
/usr/include/sys/endian.h:le16dec(const void *buf)
[netbsd]$

Any idea how to solve this problem?

-- Juraj