aboutsummaryrefslogtreecommitdiff
path: root/package/libnspr
diff options
context:
space:
mode:
authorGravatar Thomas Petazzoni <thomas.petazzoni@free-electrons.com>2015-12-24 11:18:27 +0100
committerGravatar Thomas Petazzoni <thomas.petazzoni@free-electrons.com>2015-12-24 11:18:27 +0100
commit8c6bf50828ee2c027a37ddad0f655ddb1c8b4fd0 (patch)
tree94ff2ec753d76131373efe8b52bfc1144adfc800 /package/libnspr
parentb78a95d109ea335406bbac2957c4cc85b98838d4 (diff)
downloadbuildroot-8c6bf50828ee2c027a37ddad0f655ddb1c8b4fd0.tar.gz
buildroot-8c6bf50828ee2c027a37ddad0f655ddb1c8b4fd0.tar.bz2
libnspr: fix build with the musl C library
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>
Diffstat (limited to 'package/libnspr')
-rw-r--r--package/libnspr/libnspr.mk16
1 files changed, 16 insertions, 0 deletions
diff --git a/package/libnspr/libnspr.mk b/package/libnspr/libnspr.mk
index 207da4ee67..8e58986b6c 100644
--- a/package/libnspr/libnspr.mk
+++ b/package/libnspr/libnspr.mk
@@ -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