From 2f36c829822a4b016ba075575c720ad9cb3c6463 Mon Sep 17 00:00:00 2001 From: Steve Langasek Date: Sun, 13 Jul 2003 18:41:04 +0000 Subject: Relevant BUGIDs: 643357 Purpose of commit: bugfix Commit summary: --------------- Patch from Sam Hartman to fix handling of module linking on Linux: modules should be linked against libpam if they call any functions from the library, since not all platforms will correctly resolve symbol references otherwise. Also, make sure we use gcc, not ld, when linking, since there's additional linker glue that gcc will pull in for us. --- modules/Simple.Rules | 2 +- modules/pam_access/Makefile | 3 +++ modules/pam_limits/Makefile | 3 +++ modules/pam_tally/Makefile | 2 +- modules/pam_unix/Makefile | 2 +- 5 files changed, 9 insertions(+), 3 deletions(-) (limited to 'modules') diff --git a/modules/Simple.Rules b/modules/Simple.Rules index 2d79b00c..bb16e48d 100644 --- a/modules/Simple.Rules +++ b/modules/Simple.Rules @@ -19,7 +19,7 @@ LIBOBJ = $(addsuffix .o,$(LIBFILES)) LIBOBJD = $(addprefix dynamic/,$(LIBOBJ)) LIBOBJS = $(addprefix static/,$(LIBOBJ)) -LINK_PAMMODUTILS = -L../pammodutil -lpammodutil +LINK_PAMMODUTILS = -L../pammodutil -lpammodutil -L../../libpam -lpam INCLUDE_PAMMODUTILS = -I../pammodutil/include ifdef DYNAMIC diff --git a/modules/pam_access/Makefile b/modules/pam_access/Makefile index d93c9f40..87b2b3e6 100644 --- a/modules/pam_access/Makefile +++ b/modules/pam_access/Makefile @@ -10,6 +10,9 @@ include ../../Make.Rules TITLE=pam_access LOCAL_CONFILE=./access.conf INSTALLED_CONFILE=$(SCONFIGD)/access.conf +ifeq ($(HAVE_LIBNSL),yes) +MODULE_SIMPLE_EXTRALIBS=-lnsl +endif DEFS=-DDEFAULT_CONF_FILE=\"$(INSTALLED_CONFILE)\" CFLAGS += $(DEFS) diff --git a/modules/pam_limits/Makefile b/modules/pam_limits/Makefile index 9473d915..0a481fe8 100644 --- a/modules/pam_limits/Makefile +++ b/modules/pam_limits/Makefile @@ -21,6 +21,9 @@ CFLAGS += $(DEFS) MODULE_SIMPLE_INSTALL=bash -f ../install_conf "$(FAKEROOT)" "$(SCONFIGD)" "$(INSTALLED_CONFILE)" "$(TITLE)" "$(LOCAL_CONFILE)" MODULE_SIMPLE_REMOVE=rm -f $(FAKEROOT)$(INSTALLED_CONFILE) MODULE_SIMPLE_CLEAN=rm -f ./.ignore_age +ifeq ($(HAVE_LIBCAP),yes) +MODULE_SIMPLE_EXTRALIBS=-lcap +endif include ../Simple.Rules diff --git a/modules/pam_tally/Makefile b/modules/pam_tally/Makefile index 1c5106e3..c39970dd 100644 --- a/modules/pam_tally/Makefile +++ b/modules/pam_tally/Makefile @@ -65,7 +65,7 @@ ifdef DYNAMIC $(LIBOBJD): $(LIBSRC) $(LIBSHARED): $(LIBOBJD) - $(LD_D) -o $@ $(LIBOBJD) + $(LD_D) -o $@ $(LIBOBJD) -L../../libpam -lpam $(NEED_LINK_LIB_C) $(APPLICATION): $(APPOBJD) $(TITLE).c $(CC) $(CFLAGS) -o $@ $(APPOBJD) $(LOADLIBES) diff --git a/modules/pam_unix/Makefile b/modules/pam_unix/Makefile index 0cab34bc..61c4beaa 100644 --- a/modules/pam_unix/Makefile +++ b/modules/pam_unix/Makefile @@ -109,7 +109,7 @@ ifdef DYNAMIC $(LIBOBJD): $(LIBSRC) $(LIBSHARED): $(LIBOBJD) - $(LD_D) -o $@ $(LIBOBJD) $(PLUS) $(CRACKLIB) $(LDLIBS) $(LIBNSL) $(LIBCRYPT) + $(LD_D) -o $@ $(LIBOBJD) $(PLUS) $(CRACKLIB) $(LDLIBS) $(LIBNSL) $(LIBCRYPT) $(NEED_LINK_LIB_C) -L../../libpam -lpam endif ifdef STATIC -- cgit v1.2.3