Compile problems on musl/arm32 since 9.16.8

Mark Andrews marka at isc.org
Mon Jul 19 01:55:32 UTC 2021


Please open a issue at https://gitlab.isc.org/

> On 19 Jul 2021, at 07:19, Ed W <lists at wildgooses.com> wrote:
> 
> Hi, I'm building a gentoo based system on arm v7 32bit, using musl as my libc. I am hitting a compile error, that I have determined happens on 9.16.9 onwards, yet I can build fine with 9.16.8 and earlier
> 
> 
> 
> The specific error snippet I see is:
> 
> armv7a-unknown-linux-musleabihf-gcc -O2 -pipe -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -mno-unaligned-access -DDIG_SIGCHASE -pthread -fPIC -Wl,-O1 -Wl,--as-needed -L/usr/lib -Wl,--export-dynamic -o sample-async \
> sample-async.o ../dns/libdns.a      ../isccfg/libisccfg.a ../isc/libisc.a -lcrypto     -luv -ldl
> /usr/lib/gcc/armv7a-unknown-linux-musleabihf/10.3.0/../../../../armv7a-unknown-linux-musleabihf/bin/ld:         ../isc/libisc.a(backtrace.o): in function `btcallback':
> backtrace.c:(.text+0x50): undefined reference to `_Unwind_GetIP'
> armv7a-unknown-linux-musleabihf-gcc -O2 -pipe -march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -mno-unaligned-access -DDIG_SIGCHASE -pthread -fPIC -Wl,-O1 -Wl,--as-needed -L/usr/lib -Wl,--export-dynamic -o resolve \
> resolve.o ../irs/libirs.a ../dns/libdns.a      ../isccfg/libisccfg.a ../isc/libisc.a -lcrypto     -luv -ldl
> collect2: error: ld returned 1 exit status
> make[1]: *** [Makefile:494: sample-gai] Error 1
> make[1]: *** Waiting for unfinished jobs....
> /usr/lib/gcc/armv7a-unknown-linux-musleabihf/10.3.0/../../../../armv7a-unknown-linux-musleabihf/bin/ld:         ../isc/libisc.a(backtrace.o): in function `btcallback':
> backtrace.c:(.text+0x50): undefined reference to `_Unwind_GetIP'
> collect2: error: ld returned 1 exit status
> make[1]: *** [Makefile:502: sample-request] Error 1
> /usr/lib/gcc/armv7a-unknown-linux-musleabihf/10.3.0/../../../../armv7a-unknown-linux-musleabihf/bin/ld:         ../isc/libisc.a(backtrace.o): in function `btcallback':
> backtrace.c:(.text+0x50): undefined reference to `_Unwind_GetIP'
> collect2: error: ld returned 1 exit status
> make[1]: *** [Makefile:490: sample-async] Error 1
> /usr/lib/gcc/armv7a-unknown-linux-musleabihf/10.3.0/../../../../armv7a-unknown-linux-musleabihf/bin/ld:         ../isc/libisc.a(backtrace.o): in function `btcallback':
> backtrace.c:(.text+0x50): undefined reference to `_Unwind_GetIP'
> collect2: error: ld returned 1 exit status
> make[1]: *** [Makefile:486: resolve] Error 1
> 
> 
> 
> I think this is related to this change here:
> 
> --- /var/tmp/portage/net-dns/bind-tools-9.16.9/work/bind-9.16.9/lib/isc/backtrace.c    2020-11-16 14:44:37.000000000 +0000
> +++ /var/tmp/portage/net-dns/bind-tools-9.16.8/work/bind-9.16.8/lib/isc/backtrace.c    2020-10-13 08:41:40.000000000 +0000
> @@ -40,7 +40,7 @@
>   */
>  #ifdef HAVE_LIBCTRACE
>  #define BACKTRACE_LIBC
> -#elif defined(HAVE_UNWIND_BACKTRACE)
> +#elif defined(__GNUC__) && (defined(__x86_64__) || defined(__ia64__))
>  #define BACKTRACE_GCC
>  #elif defined(WIN32)
>  #define BACKTRACE_WIN32
> 
> 
> 
> If I revert this change then my compile succeeds (although it may not be correct?)
> 
> 
> 
> I'm not really skilled enough to understand the details of gcc backtrace implementation on arm. I'm using gcc 10.3.0 to compile this, and I can see that I have a header:
> 
>     /usr/lib/gcc/armv7a-unknown-linux-musleabihf/10.3.0/include/unwind.h
> 
> So I'm assuming that I have gcc compiled with some kind of unwind implementation? 
> 
> I use a very similar profile to compile near identical code base for both amd64 and x86 architectures and both of those have no issues compiling latest bind-tools (and previous). Also, near as I can see I have my gcc configured identically across all three systems... 
> 
> 
> 
> Now I *can* compile bind-tools ok if I install the libunwind library, however, that then breaks (re)compiling my gcc compiler, so I'm really thinking that's the wrong route to go down?
> 
> Temporarily I'm reverting the above change locally, but I wonder if you could either guide me to a correct solution, or if someone more knowledgeable can revert or write some correct #if test for this situation please?
> 
> 
> 
> I'm sure I have failed to provide enough details at this stage. Please be gentle...
> 
> Thanks
> 
> Ed W
> 
> _______________________________________________
> Please visit https://lists.isc.org/mailman/listinfo/bind-users to unsubscribe from this list
> 
> ISC funds the development of this software with paid support subscriptions. Contact us at https://www.isc.org/contact/ for more information.
> 
> 
> bind-users mailing list
> bind-users at lists.isc.org
> https://lists.isc.org/mailman/listinfo/bind-users

-- 
Mark Andrews, ISC
1 Seymour St., Dundas Valley, NSW 2117, Australia
PHONE: +61 2 9871 4742              INTERNET: marka at isc.org



More information about the bind-users mailing list