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>
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