Makefile: add missing libraries to LDLIBS
authorBartosz Golaszewski <bartekgola@gmail.com>
Fri, 14 Aug 2015 06:50:00 +0000 (08:50 +0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Mon, 17 Aug 2015 15:05:55 +0000 (17:05 +0200)
Static build with CONFIG_PAM fails on Debian Jessie due to undefined
references to libdl and libaudit.

Static build without pam, but with libcrypt required fails as well due
to undefined references to libpthread.

Fix these two cases by adding the missing libraries to LDLIBS when
appropriate.

Signed-off-by: Bartosz Golaszewski <bartekgola@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Makefile.flags

index a1ed1480af9c25fd09d7f4e0c7fb23fcec711460..bb90a08decf9473d16fcfda103d22084f3ebf2e7 100644 (file)
@@ -121,20 +121,20 @@ endif
 # fall back to using a temp file:
 CRYPT_AVAILABLE := $(shell echo 'int main(void){return 0;}' >crypttest.c; $(CC) $(CFLAGS) -lcrypt -o /dev/null crypttest.c >/dev/null 2>&1 && echo "y"; rm crypttest.c)
 ifeq ($(CRYPT_AVAILABLE),y)
-LDLIBS += m crypt
+LDLIBS += m crypt pthread
 else
 LDLIBS += m
 endif
 
 ifeq ($(CONFIG_PAM),y)
-# libpam uses libpthread, so for static builds busybox must be linked to
-# libpthread. On some platforms that requires an explicit -lpthread, so
-# it should be in LDLIBS. For non-static builds, scripts/trylink will
-# take care of removing -lpthread if possible. (Not bothering to check
-# CONFIG_STATIC because even in a non-static build it could be that the
-# only libpam available is libpam.a, so -lpthread could still be
-# needed.)
-LDLIBS += pam pam_misc pthread
+# libpam uses libpthread, libdl and libaudit, so for static builds busybox
+# must be linked to libpthread, libdl and libaudit. On some platforms that
+# requires an explicit -lpthread, -ldl and -laudit, so it should be in
+# LDLIBS. For non-static builds, scripts/trylink will take care of removing
+# these flags if possible. (Not bothering to check CONFIG_STATIC because
+# even in a non-static build it could be that the only libpam available is
+# libpam.a, so -lpthread & Co. could still be needed.)
+LDLIBS += pam pam_misc pthread dl audit
 endif
 
 ifeq ($(CONFIG_SELINUX),y)