Openwall GNU/*/Linux - a small security-enhanced Linux distro for servers
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date: Tue, 8 May 2018 14:44:17 +0200
From: Thomas Petazzoni <thomas.petazzoni@...tlin.com>
To: musl@...ts.openwall.com
Subject: undefined reference to `raise' with musl static toolchain

Hello,

When building an ARM Cortex-A8 toolchain with Buildroot, using the musl
C library, and its --disable-shared option (to build a static only
toolchain), building some simple programs fail:

thomas@...dsurf:~/projets/buildroot (master)$ cat foo.c 
int main(void) { mktime(); return 0; }
$ ./output/host/bin/arm-linux-gcc -o foo foo.c
foo.c: In function ‘main’:
foo.c:1:18: warning: implicit declaration of function ‘mktime’ [-Wimplicit-function-declaration]
 int main(void) { mktime(); return 0; }
                  ^~~~~~
/home/thomas/projets/buildroot/output/host/lib/gcc/arm-buildroot-linux-musleabihf/6.4.0/libgcc.a(_dvmd_lnx.o): In function `__aeabi_idiv0':
/home/thomas/projets/buildroot/output/build/host-gcc-final-6.4.0/build/arm-buildroot-linux-musleabihf/libgcc/../../../libgcc/config/arm/lib1funcs.S:1354: undefined reference to `raise'
collect2: error: ld returned 1 exit status

Does that ring any bell ?

It can be reproduced using the following Buildroot defconfig:

BR2_arm=y
BR2_cortex_a8=y
BR2_STATIC_LIBS=y
BR2_TOOLCHAIN_BUILDROOT_MUSL=y
BR2_TOOLCHAIN_BUILDROOT_CXX=y
BR2_INIT_NONE=y
BR2_SYSTEM_BIN_SH_NONE=y
# BR2_TARGET_ROOTFS_TAR is not set

And then using the cross-compiler to build that simple program calling
mktime().

Any idea ?

Note: this is reported in the Buildroot bug tracker as
https://bugs.busybox.net/show_bug.cgi?id=10996.

Best regards,

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com

Powered by blists - more mailing lists

Your e-mail address:

Powered by Openwall GNU/*/Linux - Powered by OpenVZ