iodine: fix build issue with musl
authorPeter Korsgaard <peter@korsgaard.com>
Wed, 25 Nov 2015 21:01:43 +0000 (22:01 +0100)
committerPeter Korsgaard <peter@korsgaard.com>
Wed, 25 Nov 2015 21:01:43 +0000 (22:01 +0100)
Fxies:
http://autobuild.buildroot.net/results/1ab/1ab4f284c9cfc2a6a42aebc6da12a766b09acc4c/
http://autobuild.buildroot.net/results/a39/a39603a143821eb4e07af42ee4ee44fdde02f9e0/
http://autobuild.buildroot.net/results/384/3847e8ef28e1527764eee18224f361115aa7063b/
http://autobuild.buildroot.net/results/899/899f8844291d384cde96475e7a9ee98b69f8c803/

Iodine contains a local implementation of daemon(3) for older systems,
unless __GLIBC__ is defined.  Musl does provide it, but unlike uClibc it
doesn't define __GLIBC__.  Work around it by pretending to be glibc as we
otherwise end up with symbol conflicts.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
package/iodine/iodine.mk

index 3239249e75a738ea1a995a133bcb86ec461fe98d..9de54e041e04c20b23cdbec22d0d2975aa274012 100644 (file)
@@ -10,8 +10,19 @@ IODINE_DEPENDENCIES = zlib
 IODINE_LICENSE = MIT
 IODINE_LICENSE_FILES = README
 
+IODINE_CFLAGS = $(TARGET_CFLAGS)
+
+# iodine contains a local implementation of daemon(3) for older
+# systems, unless __GLIBC__ is defined. Musl does provide it, but
+# unlike uClibc it doesn't define __GLIBC__. Work around it by
+# pretending to be glibc as we otherwise end up with symbol conflicts.
+ifeq ($(BR2_TOOLCHAIN_USES_MUSL),y)
+IODINE_CFLAGS += -D__GLIBC__
+endif
+
 define IODINE_BUILD_CMDS
-       $(TARGET_CONFIGURE_OPTS) $(MAKE) ARCH=$(BR2_ARCH) -C $(@D)
+       $(TARGET_CONFIGURE_OPTS) CFLAGS="$(IODINE_CFLAGS)" \
+               $(MAKE) ARCH=$(BR2_ARCH) -C $(@D)
 endef
 
 define IODINE_INSTALL_TARGET_CMDS