lockdev: fix build with the musl C library
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tue, 22 Dec 2015 20:39:17 +0000 (21:39 +0100)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tue, 22 Dec 2015 20:39:17 +0000 (21:39 +0100)
When the musl C library is used, the __GNU_LIBRARY__ symbol is not
defined, so the lockdev code doesn't know what to do. To work around
this, we explicitly pass __GNU_LIBRARY__ when building with musl, this
musl provides what's needed for lockdev to build, as if we were
building against glibc.

Fixes:

  http://autobuild.buildroot.org/results/9db/9db4ab40955d3af0027e141245d73ee6c614fb1f/

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

index e40a407d3a8c74d7aaa010cfc248691bea504eec..a45e22e7332f750f6e9a0a327bcc299cf806362f 100644 (file)
@@ -24,6 +24,12 @@ LOCKDEV_BUILD_ARGS = shared
 LOCKDEV_INSTALL_ARGS = install_run
 endif
 
+# Make the code believe we are using a C library compatible with
+# glibc, which for the purpose of lockdev is actually true.
+ifeq ($(BR2_TOOLCHAIN_USES_MUSL),y)
+LOCKDEV_BUILD_ARGS += CFLAGS="$(TARGET_CFLAGS) -D__GNU_LIBRARY__"
+endif
+
 ifeq ($(BR2_SHARED_STATIC_LIBS)$(BR2_SHARED_LIBS),y)
 define LOCKDEV_CREATE_LINKS_STAGING
        ln -sf liblockdev.$(LOCKDEV_VERSION).so $(STAGING_DIR)/usr/lib/liblockdev.so