From: Hauke Mehrtens Date: Sun, 17 Apr 2016 12:49:30 +0000 (+0000) Subject: toolchain/uClibc: enable UCLIBC_HAS_OBSOLETE_BSD_SIGNAL X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=336ad4c9aab2f102ec7d4f8c01d0e592e2e2ad5d;p=openwrt%2Fstaging%2Fthess.git toolchain/uClibc: enable UCLIBC_HAS_OBSOLETE_BSD_SIGNAL This is required to build net-snmp. If that options is disabled in uClibc then net-snmp doesn't detect sighold support on its configuration stage and so defines HAVE_SIGHOLD as 0. That in its turn causes compilation of the following branch of timerPause() in apps/snmpnetstat: ------------------>8---------------- int oldmask; oldmask = sigblock(sigmask(SIGALRM)); if (!signalled) { sigpause(0); } sigsetmask(oldmask); ------------------>8---------------- Now in uClibc all 3 sigblock(), sigmask() and sigsetmask() were removed back in 2005, see: https://git.busybox.net/uClibc/commit/?id=5aa7aa7fa7ec2a0fe567ac0b2595b46add6f3594 And all that causes net-snmp linkage to fail this way: ------------------>8---------------- .libs/if.o: In function `intpr': if.c:(.text+0x908): undefined reference to `sigmask' if.c:(.text+0x90e): undefined reference to `sigblock' if.c:(.text+0x924): undefined reference to `sigsetmask' ------------------>8---------------- If we enable UCLIBC_HAS_OBSOLETE_BSD_SIGNAL in uClibc then branch with sighold is used in timerPause() and everything builds as expected. Signed-off-by: Alexey Brodkin Signed-off-by: Hauke Mehrtens SVN-Revision: 49178 --- diff --git a/toolchain/uClibc/config/common b/toolchain/uClibc/config/common index ec72701a22..b476639626 100644 --- a/toolchain/uClibc/config/common +++ b/toolchain/uClibc/config/common @@ -144,7 +144,7 @@ UCLIBC_HAS_LIBUTIL=y UCLIBC_HAS_LONG_DOUBLE_MATH=y UCLIBC_HAS_NETWORK_SUPPORT=y UCLIBC_HAS_NFTW=y -# UCLIBC_HAS_OBSOLETE_BSD_SIGNAL is not set +UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y # UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set UCLIBC_HAS_PRINTF_M_SPEC=y # UCLIBC_HAS_PROFILING is not set