Commit 8c6bf508 authored by Thomas Petazzoni's avatar Thomas Petazzoni
Browse files

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: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
parent b78a95d1
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -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