On Mon, Apr 08, 2002 at 02:49:04PM +0200, Dag-Erling Smorgrav wrote: > Ruslan Ermilov <[EMAIL PROTECTED]> writes: > > You're right. I forgot to relink pam_ssh.so library, and the diff was > > against the wrong revision. I will still commit the "const poisoning" > > patch to libutil, as the impact turned out to be really low. > > Thanks, const poisoning is a Good Thing [tm]. > > BTW, could you try to figure out a way we can split up the libpam > build so the modules can depend on libpam.so? What I'd like is: > > 1) build static modules > 2) build static and dynamic libpam > 3) build dynamic modules (with dependency on libpam.so) > > or > > 1) build dynamic libpam > 2) build modules (with dependency on libpam.so) > 3) build static libpam > > or something similar. > Uh oh, here is the version that seems to work. Once I'm confident it passes the "make release" test (it has already passed the preliminary "make buildworld" test), I intend to commit it.
Note that I'm not passing the _NO_LIBPAM_SO_YET to the "depend" stage intentionally; otherwise, it results in incomplete .depend files. Cheers, -- Ruslan Ermilov Sysadmin and DBA, [EMAIL PROTECTED] Sunbay Software AG, [EMAIL PROTECTED] FreeBSD committer, +380.652.512.251 Simferopol, Ukraine http://www.FreeBSD.org The Power To Serve http://www.oracle.com Enabling The Information Age
Index: Makefile.inc1
===================================================================
RCS file: /home/ncvs/src/Makefile.inc1,v
retrieving revision 1.311
diff -u -r1.311 Makefile.inc1
--- Makefile.inc1 13 Nov 2002 13:49:29 -0000 1.311
+++ Makefile.inc1 14 Nov 2002 14:39:46 -0000
@@ -729,7 +729,8 @@
.endif
_prebuild_libs+= lib/libcom_err lib/libcrypt lib/libkvm lib/libmd \
- lib/libncurses lib/libopie lib/libradius lib/librpcsvc \
+ lib/libncurses lib/libopie lib/libpam lib/libradius \
+ lib/librpcsvc \
lib/libsbuf lib/libtacplus lib/libutil lib/libypclnt \
lib/libz lib/msun
@@ -755,7 +756,7 @@
_generic_libs+= usr.sbin/pcvt/keycap
.endif
-.for _lib in ${_startup_libs} ${_prebuild_libs} ${_generic_libs}
+.for _lib in ${_startup_libs} ${_prebuild_libs:Nlib/libpam} ${_generic_libs}
${_lib}__L: .PHONY
.if exists(${.CURDIR}/${_lib})
${ECHODIR} "===> ${_lib}"; \
@@ -765,6 +766,16 @@
${MAKE} DIRPRFX=${_lib}/ install
.endif
.endfor
+
+# libpam is special: we need to build static PAM modules before
+# static PAM library, and dynamic PAM library before dynamic PAM
+# modules.
+lib/libpam__L: .PHONY
+ ${ECHODIR} "===> lib/libpam"; \
+ cd ${.CURDIR}/lib/libpam; \
+ ${MAKE} DIRPRFX=lib/libpam/ depend; \
+ ${MAKE} DIRPRFX=lib/libpam/ -D_NO_LIBPAM_SO_YET all; \
+ ${MAKE} DIRPRFX=lib/libpam/ -D_NO_LIBPAM_SO_YET install
_startup_libs: ${_startup_libs:S/$/__L/}
_prebuild_libs: ${_prebuild_libs:S/$/__L/}
Index: lib/libpam/modules/Makefile.inc
===================================================================
RCS file: /home/ncvs/src/lib/libpam/modules/Makefile.inc,v
retrieving revision 1.13
diff -u -r1.13 Makefile.inc
--- lib/libpam/modules/Makefile.inc 13 May 2002 10:53:24 -0000 1.13
+++ lib/libpam/modules/Makefile.inc 14 Nov 2002 14:39:46 -0000
@@ -4,7 +4,6 @@
NOINSTALLLIB= yes
NOPROFILE= yes
-SHLIB_NAME?= ${LIB}.so.${SHLIB_MAJOR}
CFLAGS+= -I${PAMDIR}/include
CFLAGS+= -I${.CURDIR}/../../libpam
@@ -14,8 +13,12 @@
# This is nasty.
# For the static case, libpam.a depends on the modules.
# For the dynamic case, the modules depend on libpam.so.N
-# Punt for the time being until I can figure out how to do it.
-#DPADD+= ${LIBPAM}
-#LDADD+= -lpam
+.if defined(_NO_LIBPAM_SO_YET)
+NOPIC= YES
+.else
+SHLIB_NAME?= ${LIB}.so.${SHLIB_MAJOR}
+DPADD+= ${LIBPAM}
+LDADD+= -lpam
+.endif
.include "../Makefile.inc"
msg46674/pgp00000.pgp
Description: PGP signature
