libnspr: fix build with the musl C library
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Thu, 24 Dec 2015 10:18:27 +0000 (11:18 +0100)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Thu, 24 Dec 2015 10:18:27 +0000 (11:18 +0100)
Even though libnspr uses a configure script, it does look at __GLIBC__
and other macros to determine whether certain C library features are
available or not. Such things fails completely with the musl C
library, since it doesn't define __GLIBC__.

To fix this, we borrow some logic from Alpine Linux, which consists in
explicitly specifying which features are available in the musl C
library.

Fixes:

  http://autobuild.buildroot.org/results/ddd/dddd032232126f1e476e6aea2c6a32e9cd1ddfae/

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
package/libnspr/libnspr.mk

index 207da4ee67c5a6763a8fc41721a6aa13f7c76005..8e58986b6cd2b0146537465ee747e0b73ab9b5f4 100644 (file)
@@ -21,6 +21,22 @@ LIBNSPR_CONF_ENV = \
 LIBNSPR_CONF_OPTS = --host=$(GNU_HOST_NAME)
 LIBNSPR_CONF_OPTS += --$(if $(BR2_ARCH_IS_64),en,dis)able-64bit
 
+# ./nspr/pr/include/md/_linux.h tests only __GLIBC__ version to detect
+# c-library features, list musl features here for now (taken from
+# Alpine Linux).
+ifeq ($(BR2_TOOLCHAIN_USES_MUSL),y)
+LIBNSPR_CFLAGS += \
+       -D_PR_POLL_AVAILABLE \
+       -D_PR_HAVE_OFF64_T \
+       -D_PR_INET6 \
+       -D_PR_HAVE_INET_NTOP \
+       -D_PR_HAVE_GETHOSTBYNAME2 \
+       -D_PR_HAVE_GETADDRINFO \
+       -D_PR_INET6_PROBE
+endif
+
+LIBNSPR_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) $(LIBNSPR_CFLAGS)"
+
 ifeq ($(BR2_STATIC_LIBS),y)
 LIBNSPR_MAKE_OPTS = SHARED_LIBRARY=
 LIBNSPR_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) SHARED_LIBRARY= install