summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Martin <s.martin49@gmail.com>2013-12-01 19:13:38 (GMT)
committer Peter Korsgaard <peter@korsgaard.com>2013-12-01 20:04:47 (GMT)
commitd54418f2bcd9267fd049511d6236fb91c83b94ea (patch)
tree064cfb1db46b32dd5faff1a75624622b3ff6dd1e
parentb8bad3ae49387a85bc7997fec2da14801a3b76e1 (diff)
downloadbuildroot-d54418f2bcd9267fd049511d6236fb91c83b94ea.tar.gz
buildroot-d54418f2bcd9267fd049511d6236fb91c83b94ea.tar.bz2
crda: fix static build failure
libnl-3 uses threads and this isn't accounted for in crda or libnl-3*.pc files since crda doesn't use pkg-config. Since linking order matters for static scenarios also throw in -lnl-3 into NLLIBS first since it gets appended to in crda makefiles to add libnl-3. libgcrypt depends on libgpg-error and this isn't accounted for in crda makefile, but it is in libgcrypt-config script (in the correct order for static linking), so set LDLIBS calling this script. Fixes: http://autobuild.humanoidz.org/results/31c/31c54e16b60f41e2aa9ea6cd43ced694d3ce3ce0/ http://autobuild.humanoidz.org/results/a45/a4548583aa63fbf6db9dbdf7e1556b0d23800de5/ Signed-off-by: Samuel Martin <s.martin49@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
-rw-r--r--package/crda/crda.mk16
1 files changed, 15 insertions, 1 deletions
diff --git a/package/crda/crda.mk b/package/crda/crda.mk
index 44fd0f2..ce87d44 100644
--- a/package/crda/crda.mk
+++ b/package/crda/crda.mk
@@ -12,8 +12,22 @@ CRDA_DEPENDENCIES = host-pkgconf host-python-m2crypto \
CRDA_LICENSE = ISC
CRDA_LICENSE_FILES = LICENSE
+# libnl-3 needs -lm (for rint) and -lpthread if linking statically.
+# And library order matters hence stick -lnl-3 first since it's appended
+# in the crda Makefiles as in NLLIBS+=-lnl-3 ... thus failing.
+#
+# libgcrypt needs -lgpg-error if linking statically, which is correctly
+# set by the libgcrypt-config script (and in the right order).
+ifeq ($(BR2_PREFER_STATIC_LIB),y)
+CRDA_NLLIBS += -lnl-3 -lm -lpthread
+CRDA_LDLIBS += `$(STAGING_DIR)/usr/bin/libgcrypt-config --libs`
+endif
+
define CRDA_BUILD_CMDS
- $(TARGET_CONFIGURE_OPTS) $(MAKE) all_noverify -C $(@D)
+ $(TARGET_CONFIGURE_OPTS) \
+ LDLIBS="$(CRDA_LDLIBS)" \
+ NLLIBS="$(CRDA_NLLIBS)" \
+ $(MAKE) all_noverify -C $(@D)
endef
define CRDA_INSTALL_TARGET_CMDS