]> git.ipfire.org Git - thirdparty/shadow.git/commitdiff
try again to fix libmisc sharing problem
authorSerge Hallyn <serge@hallyn.com>
Mon, 1 Feb 2021 04:44:09 +0000 (22:44 -0600)
committerSerge Hallyn <serge@hallyn.com>
Sun, 11 Apr 2021 22:42:04 +0000 (17:42 -0500)
Issue #297 reported seeing

*** Warning: Linking the shared library libsubid.la against the
*** static library ../libmisc/libmisc.a is not portable!

which commit b5fb1b38eea2fb0489ed088c82daf6700e72363e was supposed
to fix.  But a few commits later it's back.  So try to fix it
in the way the bug reporter suggested.  This broke builds some
other ways, namely a few missing library specifications, so add
those.

Signed-off-by: Serge Hallyn <serge@hallyn.com>
configure.ac
libmisc/Makefile.am
libsubid/Makefile.am
src/Makefile.am

index 6aaae6b7478e611e96184d03c6ab2402fae4c6d2..7884bfb61758541cf5820d517f2bee13d85442ee 100644 (file)
@@ -55,7 +55,7 @@ AC_CHECK_FUNCS(l64a fchmod fchown fsync futimes getgroups gethostname getspnam \
        gettimeofday getusershell getutent initgroups lchown lckpwdf lstat \
        lutimes memcpy memset setgroups sigaction strchr updwtmp updwtmpx innetgr \
        getpwnam_r getpwuid_r getgrnam_r getgrgid_r getspnam_r getaddrinfo \
-       ruserok)
+       ruserok dlopen)
 AC_SYS_LARGEFILE
 
 dnl Checks for typedefs, structures, and compiler characteristics.
index 7f43161f87e03251d0d3df0cc16edcc71dca8609..9766a7ec15daf1b11ef14e753f1e989423025264 100644 (file)
@@ -3,9 +3,9 @@ EXTRA_DIST = .indent.pro xgetXXbyYY.c
 
 AM_CPPFLAGS = -I$(top_srcdir)/lib $(ECONF_CPPFLAGS)
 
-noinst_LIBRARIES = libmisc.a
+noinst_LTLIBRARIES = libmisc.la
 
-libmisc_a_SOURCES = \
+libmisc_la_SOURCES = \
        addgrps.c \
        age.c \
        audit_help.c \
@@ -74,6 +74,6 @@ libmisc_a_SOURCES = \
        yesno.c
 
 if WITH_BTRFS
-libmisc_a_SOURCES += btrfs.c
+libmisc_la_SOURCES += btrfs.c
 endif
 
index 8bef1ecc435fd8082cb8dd677a2e7cb79aae445e..f24dbb94b96058826b4d218e36290d4aba10a8d4 100644 (file)
@@ -12,12 +12,14 @@ MISCLIBS = \
        $(LIBMD) \
        $(LIBECONF) \
        $(LIBCRYPT) \
+       $(LIBACL) \
+       $(LIBATTR) \
        $(LIBTCB)
 
 libsubid_la_LIBADD = \
        $(top_srcdir)/lib/libshadow.la \
-       $(MISCLIBS) \
-       $(top_srcdir)/libmisc/libmisc.a
+       $(top_srcdir)/libmisc/libmisc.la \
+       $(MISCLIBS)
 
 AM_CPPFLAGS = \
        -I${top_srcdir}/lib \
index 8499ce08f84bd708cc8ec9bd6069b28c0cbd675e..e9d354fdd4c6e0441a3b61bde809ab2994d8d16b 100644 (file)
@@ -78,7 +78,7 @@ shadowsgidubins = passwd
 endif
 
 LDADD          = $(INTLLIBS) \
-                $(top_builddir)/libmisc/libmisc.a \
+                $(top_builddir)/libmisc/libmisc.la \
                 $(top_builddir)/lib/libshadow.la \
                 $(LIBTCB)
 
@@ -95,28 +95,37 @@ LIBCRYPT_NOPAM = $(LIBCRYPT)
 endif
 
 chage_LDADD    = $(LDADD) $(LIBPAM_SUID) $(LIBAUDIT) $(LIBSELINUX) $(LIBECONF)
-newuidmap_LDADD    = $(LDADD) $(LIBAUDIT) $(LIBSELINUX) $(LIBCAP)
-newgidmap_LDADD    = $(LDADD) $(LIBAUDIT) $(LIBSELINUX) $(LIBCAP)
+newuidmap_LDADD    = $(LDADD) $(LIBAUDIT) $(LIBSELINUX) $(LIBCAP) -ldl
+newgidmap_LDADD    = $(LDADD) $(LIBAUDIT) $(LIBSELINUX) $(LIBCAP) -ldl
 chfn_LDADD     = $(LDADD) $(LIBPAM) $(LIBAUDIT) $(LIBSELINUX) $(LIBCRYPT_NOPAM) $(LIBSKEY) $(LIBMD) $(LIBECONF)
 chgpasswd_LDADD = $(LDADD) $(LIBPAM_SUID) $(LIBAUDIT) $(LIBSELINUX) $(LIBCRYPT) $(LIBECONF)
 chsh_LDADD     = $(LDADD) $(LIBPAM) $(LIBAUDIT) $(LIBSELINUX) $(LIBCRYPT_NOPAM) $(LIBSKEY) $(LIBMD) $(LIBECONF)
 chpasswd_LDADD = $(LDADD) $(LIBPAM) $(LIBAUDIT) $(LIBSELINUX) $(LIBCRYPT) $(LIBECONF)
 expiry_LDADD = $(LDADD) $(LIBECONF)
 gpasswd_LDADD  = $(LDADD) $(LIBAUDIT) $(LIBSELINUX) $(LIBCRYPT) $(LIBECONF)
-groupadd_LDADD = $(LDADD) $(LIBPAM_SUID) $(LIBAUDIT) $(LIBSELINUX) $(LIBECONF)
-groupdel_LDADD = $(LDADD) $(LIBPAM_SUID) $(LIBAUDIT) $(LIBSELINUX) $(LIBECONF)
+groupadd_LDADD = $(LDADD) $(LIBPAM_SUID) $(LIBAUDIT) $(LIBSELINUX) $(LIBECONF) -ldl
+groupdel_LDADD = $(LDADD) $(LIBPAM_SUID) $(LIBAUDIT) $(LIBSELINUX) $(LIBECONF) -ldl
 groupmems_LDADD = $(LDADD) $(LIBPAM) $(LIBAUDIT) $(LIBSELINUX) $(LIBECONF)
-groupmod_LDADD = $(LDADD) $(LIBPAM_SUID) $(LIBAUDIT) $(LIBSELINUX) $(LIBECONF)
+groupmod_LDADD = $(LDADD) $(LIBPAM_SUID) $(LIBAUDIT) $(LIBSELINUX) $(LIBECONF) -ldl
 grpck_LDADD    = $(LDADD) $(LIBAUDIT) $(LIBSELINUX) $(LIBECONF)
 grpconv_LDADD  = $(LDADD) $(LIBAUDIT) $(LIBSELINUX) $(LIBECONF)
 grpunconv_LDADD = $(LDADD) $(LIBAUDIT) $(LIBSELINUX) $(LIBECONF)
 lastlog_LDADD   = $(LDADD) $(LIBAUDIT) $(LIBECONF)
+newuidmap_SOURCES = newuidmap.c ../libmisc/nss.c
+newgidmap_SOURCES = newgidmap.c ../libmisc/nss.c
+groupadd_SOURCES = groupadd.c ../libmisc/nss.c
+groupmod_SOURCES = groupmod.c ../libmisc/nss.c
+groupdel_SOURCES = groupdel.c ../libmisc/nss.c
+newusers_SOURCES = newusers.c ../libmisc/nss.c
+useradd_SOURCES = useradd.c ../libmisc/nss.c
+usermod_SOURCES = usermod.c ../libmisc/nss.c
+userdel_SOURCES = userdel.c ../libmisc/nss.c
 login_SOURCES  = \
        login.c \
        login_nopam.c
 login_LDADD    = $(LDADD) $(LIBPAM) $(LIBAUDIT) $(LIBCRYPT_NOPAM) $(LIBSKEY) $(LIBMD) $(LIBECONF)
 newgrp_LDADD   = $(LDADD) $(LIBAUDIT) $(LIBCRYPT) $(LIBECONF)
-newusers_LDADD = $(LDADD) $(LIBPAM) $(LIBAUDIT) $(LIBSELINUX) $(LIBCRYPT) $(LIBECONF)
+newusers_LDADD = $(LDADD) $(LIBPAM) $(LIBAUDIT) $(LIBSELINUX) $(LIBCRYPT) $(LIBECONF) -ldl
 nologin_LDADD  =
 passwd_LDADD   = $(LDADD) $(LIBPAM) $(LIBCRACK) $(LIBAUDIT) $(LIBSELINUX) $(LIBCRYPT_NOPAM) $(LIBECONF)
 pwck_LDADD     = $(LDADD) $(LIBAUDIT) $(LIBSELINUX) $(LIBECONF)
@@ -127,9 +136,9 @@ su_SOURCES     = \
        suauth.c
 su_LDADD       = $(LDADD) $(LIBPAM) $(LIBAUDIT) $(LIBCRYPT_NOPAM) $(LIBSKEY) $(LIBMD) $(LIBECONF)
 sulogin_LDADD  = $(LDADD) $(LIBCRYPT) $(LIBECONF)
-useradd_LDADD  = $(LDADD) $(LIBPAM_SUID) $(LIBAUDIT) $(LIBSELINUX) $(LIBSEMANAGE) $(LIBACL) $(LIBATTR) $(LIBECONF)
-userdel_LDADD  = $(LDADD) $(LIBPAM_SUID) $(LIBAUDIT) $(LIBSELINUX) $(LIBSEMANAGE) $(LIBECONF)
-usermod_LDADD  = $(LDADD) $(LIBPAM_SUID) $(LIBAUDIT) $(LIBSELINUX) $(LIBSEMANAGE) $(LIBACL) $(LIBATTR) $(LIBECONF)
+useradd_LDADD  = $(LDADD) $(LIBPAM_SUID) $(LIBAUDIT) $(LIBSELINUX) $(LIBSEMANAGE) $(LIBACL) $(LIBATTR) $(LIBECONF) -ldl
+userdel_LDADD  = $(LDADD) $(LIBPAM_SUID) $(LIBAUDIT) $(LIBSELINUX) $(LIBSEMANAGE) $(LIBECONF) -ldl
+usermod_LDADD  = $(LDADD) $(LIBPAM_SUID) $(LIBAUDIT) $(LIBSELINUX) $(LIBSEMANAGE) $(LIBACL) $(LIBATTR) $(LIBECONF) -ldl
 vipw_LDADD     = $(LDADD) $(LIBAUDIT) $(LIBSELINUX) $(LIBECONF)
 
 install-am: all-am
@@ -175,7 +184,7 @@ MISCLIBS = \
 
 list_subid_ranges_LDADD = \
        $(top_builddir)/lib/libshadow.la \
-       $(top_builddir)/libmisc/libmisc.a \
+       $(top_builddir)/libmisc/libmisc.la \
        $(top_builddir)/libsubid/libsubid.la \
        $(MISCLIBS)
 
@@ -186,7 +195,7 @@ list_subid_ranges_CPPFLAGS = \
 
 get_subid_owners_LDADD = \
        $(top_builddir)/lib/libshadow.la \
-       $(top_builddir)/libmisc/libmisc.a \
+       $(top_builddir)/libmisc/libmisc.la \
        $(top_builddir)/libsubid/libsubid.la \
        $(MISCLIBS)
 
@@ -202,7 +211,7 @@ new_subid_range_CPPFLAGS = \
 
 new_subid_range_LDADD = \
        $(top_builddir)/lib/libshadow.la \
-       $(top_builddir)/libmisc/libmisc.a \
+       $(top_builddir)/libmisc/libmisc.la \
        $(top_builddir)/libsubid/libsubid.la \
        $(MISCLIBS)
 
@@ -213,7 +222,7 @@ free_subid_range_CPPFLAGS = \
 
 free_subid_range_LDADD = \
        $(top_builddir)/lib/libshadow.la \
-       $(top_builddir)/libmisc/libmisc.a \
+       $(top_builddir)/libmisc/libmisc.la \
        $(top_builddir)/libsubid/libsubid.la \
        $(MISCLIBS)
 endif