Bug 4147 - arm cross compiler error
Summary: arm cross compiler error
Status: RESOLVED FIXED
Alias: None
Product: Busybox
Classification: Unclassified
Component: Other (show other bugs)
Version: 1.19.x
Hardware: PC Linux
: P5 normal
Target Milestone: ---
Assignee: unassigned
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-09-08 15:13 UTC by a3251453
Modified: 2011-09-15 11:02 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description a3251453 2011-09-08 15:13:54 UTC
trying to cross-compile busybox as suggested here: http://www.busybox.net/FAQ.html#build

that's the error:

 AR      util-linux/lib.a
  LD      util-linux/volume_id/built-in.o
  CC      util-linux/volume_id/btrfs.o
  CC      util-linux/volume_id/cramfs.o
  CC      util-linux/volume_id/ext.o
  CC      util-linux/volume_id/fat.o
  CC      util-linux/volume_id/get_devname.o
  CC      util-linux/volume_id/hfs.o
  CC      util-linux/volume_id/iso9660.o
  CC      util-linux/volume_id/jfs.o
  CC      util-linux/volume_id/linux_raid.o
  CC      util-linux/volume_id/linux_swap.o
  CC      util-linux/volume_id/luks.o
  CC      util-linux/volume_id/ntfs.o
  CC      util-linux/volume_id/ocfs2.o
  CC      util-linux/volume_id/reiserfs.o
  CC      util-linux/volume_id/romfs.o
  CC      util-linux/volume_id/sysv.o
  CC      util-linux/volume_id/udf.o
  CC      util-linux/volume_id/util.o
  CC      util-linux/volume_id/volume_id.o
  CC      util-linux/volume_id/xfs.o
  AR      util-linux/volume_id/lib.a
  LINK    busybox_unstripped
Trying libraries: crypt m
Failed: -Wl,--start-group -lcrypt -lm -Wl,--end-group
Output of:
/home/android/busybox/cross-compiler-armv5l/bin/armv5l-gcc -Wall -Wshadow -Wwrite-strings -Wundef -Wstrict-prototypes -Wunused -Wunused-parameter -Wunused-function -Wunused-value -Wmissing-prototypes -Wmissing-declarations -Wdeclaration-after-statement -Wold-style-definition -fno-builtin-strlen -finline-limit=0 -fomit-frame-pointer -ffunction-sections -fdata-sections -fno-guess-branch-probability -funsigned-char -static-libgcc -falign-functions=1 -falign-jumps=1 -falign-labels=1 -falign-loops=1 -Os -o busybox_unstripped -Wl,--sort-common -Wl,--sort-section,alignment -Wl,--gc-sections -Wl,--start-group applets/built-in.o archival/lib.a archival/libarchive/lib.a console-tools/lib.a coreutils/lib.a coreutils/libcoreutils/lib.a debianutils/lib.a e2fsprogs/lib.a editors/lib.a findutils/lib.a init/lib.a libbb/lib.a libpwdgrp/lib.a loginutils/lib.a mailutils/lib.a miscutils/lib.a modutils/lib.a networking/lib.a networking/libiproute/lib.a networking/udhcp/lib.a printutils/lib.a procps/lib.a runit/lib.a selinux/lib.a shell/lib.a sysklogd/lib.a util-linux/lib.a util-linux/volume_id/lib.a archival/built-in.o archival/libarchive/built-in.o console-tools/built-in.o coreutils/built-in.o coreutils/libcoreutils/built-in.o debianutils/built-in.o e2fsprogs/built-in.o editors/built-in.o findutils/built-in.o init/built-in.o libbb/built-in.o libpwdgrp/built-in.o loginutils/built-in.o mailutils/built-in.o miscutils/built-in.o modutils/built-in.o networking/built-in.o networking/libiproute/built-in.o networking/udhcp/built-in.o printutils/built-in.o procps/built-in.o runit/built-in.o selinux/built-in.o shell/built-in.o sysklogd/built-in.o util-linux/built-in.o util-linux/volume_id/built-in.o -Wl,--end-group -Wl,--start-group -lcrypt -lm -Wl,--end-group
==========
networking/lib.a(ipcalc.o): In function `ipcalc_main':
ipcalc.c:(.text.ipcalc_main+0x268): warning: gethostbyaddr is obsolescent, use getaddrinfo() instead.
util-linux/lib.a(mount.o): In function `nfsmount':
mount.c:(.text.nfsmount+0xc4): warning: gethostbyname is obsolescent, use getnameinfo() instead.
coreutils/lib.a(ls.o): In function `sortcmp':
ls.c:(.text.sortcmp+0xc4): undefined reference to `strverscmp'
make: *** [busybox_unstripped] Errore 1
Comment 1 Denys Vlasenko 2011-09-09 09:00:48 UTC
Strange. On Android, we should avoid using it:

#if defined(ANDROID)
...
# undef HAVE_STRVERSCMP
...
#endif

#if defined(HAVE_STRVERSCMP) && HAVE_STRVERSCMP == 1
        if (sort_opts == SORT_VERSION) {
                dif = strverscmp(d1->name, d2->name);
        } else
#endif

What libc do you use? If uclibc, what is its version?
Comment 2 Denys Vlasenko 2011-09-15 11:02:14 UTC
I'd strengthen android check:

-#if defined(ANDROID)
+#if defined(ANDROID) || defined(__ANDROID__)

http://busybox.net/downloads/fixes-1.19.2/busybox-1.19.2-android.patch

Hope this will fix it...