From owner-svn-src-head@freebsd.org Thu Apr 14 01:17:05 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A998CB0EB1B; Thu, 14 Apr 2016 01:17:05 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 79D0113D5; Thu, 14 Apr 2016 01:17:05 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u3E1H4oP070223; Thu, 14 Apr 2016 01:17:04 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u3E1H4nV070217; Thu, 14 Apr 2016 01:17:04 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <201604140117.u3E1H4nV070217@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Thu, 14 Apr 2016 01:17:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r297946 - in head: . lib/libpam lib/libpam/libpam lib/libpam/modules lib/libpam/static_libpam lib/libpam/static_modules targets/pseudo/userland/lib X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Apr 2016 01:17:05 -0000 Author: bdrewery Date: Thu Apr 14 01:17:03 2016 New Revision: 297946 URL: https://svnweb.freebsd.org/changeset/base/297946 Log: Simplify building libpam and fix libpam.a not containing the modules since r284345. The change in r284345 moved the creation of openpam_static_modules.o to lib/libpam/static_modules but never managed to get them into libpam.a. Move this logic to lib/libpam/static_libpam and have it create a static library for libpam.a The main lib/libpam/libpam will only create a shared library. No redundancy in compilation or installation exists in this solution. This avoids requiring a pass with -D_NO_LIBPAM_SO_YET. Sponsored by: EMC / Isilon Storage Division Added: head/lib/libpam/static_libpam/ - copied from r297945, head/lib/libpam/static_modules/ Deleted: head/lib/libpam/static_modules/ Modified: head/Makefile.inc1 head/lib/libpam/Makefile head/lib/libpam/libpam/Makefile head/lib/libpam/modules/Makefile.inc head/lib/libpam/static_libpam/Makefile head/targets/pseudo/userland/lib/Makefile.depend Modified: head/Makefile.inc1 ============================================================================== --- head/Makefile.inc1 Thu Apr 14 00:25:11 2016 (r297945) +++ head/Makefile.inc1 Thu Apr 14 01:17:03 2016 (r297946) @@ -1719,7 +1719,7 @@ _prebuild_libs= ${_kerberos5_lib_libasn1 lib/libkiconv lib/libkvm lib/liblzma lib/libmd lib/libnv \ ${_lib_casper} \ lib/ncurses/ncurses lib/ncurses/ncursesw \ - lib/libopie lib/libpam ${_lib_libthr} \ + lib/libopie lib/libpam/libpam ${_lib_libthr} \ ${_lib_libradius} lib/libsbuf lib/libtacplus \ lib/libgeom \ ${_cddl_lib_libumem} ${_cddl_lib_libnvpair} \ @@ -1731,6 +1731,7 @@ _prebuild_libs= ${_kerberos5_lib_libasn1 ${_secure_lib_libcrypto} ${_lib_libldns} \ ${_secure_lib_libssh} ${_secure_lib_libssl} \ gnu/lib/libdialog + .if ${MK_GNUCXX} != "no" _prebuild_libs+= gnu/lib/libstdc++ gnu/lib/libsupc++ gnu/lib/libstdc++__L: lib/msun__L @@ -1898,7 +1899,7 @@ ${_lib}__PL: .PHONY .MAKE .endif .endfor -.for _lib in ${_startup_libs} ${_prebuild_libs:Nlib/libpam} ${_generic_libs} +.for _lib in ${_startup_libs} ${_prebuild_libs} ${_generic_libs} ${_lib}__L: .PHONY .MAKE .if exists(${.CURDIR}/${_lib}) ${_+_}@${ECHODIR} "===> ${_lib} (obj,all,install)"; \ @@ -1909,18 +1910,6 @@ ${_lib}__L: .PHONY .MAKE .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 .MAKE - ${_+_}@${ECHODIR} "===> lib/libpam (obj,all,install)"; \ - cd ${.CURDIR}/lib/libpam; \ - ${MAKE} MK_TESTS=no DIRPRFX=lib/libpam/ obj; \ - ${MAKE} MK_TESTS=no DIRPRFX=lib/libpam/ \ - -D_NO_LIBPAM_SO_YET all; \ - ${MAKE} MK_TESTS=no DIRPRFX=lib/libpam/ \ - -D_NO_LIBPAM_SO_YET install - _prereq_libs: ${_prereq_libs:S/$/__PL/} _startup_libs: ${_startup_libs:S/$/__L/} _prebuild_libs: ${_prebuild_libs:S/$/__L/} Modified: head/lib/libpam/Makefile ============================================================================== --- head/lib/libpam/Makefile Thu Apr 14 00:25:11 2016 (r297945) +++ head/lib/libpam/Makefile Thu Apr 14 01:17:03 2016 (r297946) @@ -24,8 +24,11 @@ # # $FreeBSD$ -# The modules must be built first, because they are built into the -# static version of libpam. -SUBDIR+= modules libpam static_modules +# The modules link in libpam. They build the static modules as well. +SUBDIR+= libpam modules +SUBDIR_DEPEND_modules= libpam +SUBDIR+= static_libpam +SUBDIR_DEPEND_static_libpam= modules +SUBDIR_PARALLEL= .include Modified: head/lib/libpam/libpam/Makefile ============================================================================== --- head/lib/libpam/libpam/Makefile Thu Apr 14 00:25:11 2016 (r297945) +++ head/lib/libpam/libpam/Makefile Thu Apr 14 01:17:03 2016 (r297946) @@ -38,7 +38,11 @@ OPENPAM= ${.CURDIR}/../../../contrib/openpam .PATH: ${OPENPAM}/include ${OPENPAM}/lib/libpam ${OPENPAM}/doc/man -LIB= pam +# static_libpam will build libpam.a +.if !defined(LIB) +SHLIB= pam +.endif + MK_PROFILE=no SRCS= openpam_asprintf.c \ @@ -98,7 +102,7 @@ SRCS= openpam_asprintf.c \ # Local additions SRCS+= pam_debug_log.c -MAN= openpam.3 \ +MAN?= openpam.3 \ openpam_borrow_cred.3 \ openpam_free_data.3 \ openpam_free_envlist.3 \ @@ -150,10 +154,10 @@ MAN= openpam.3 \ pam_vprompt.3 \ pam.conf.5 -MLINKS= pam.conf.5 pam.d.5 +MLINKS?= pam.conf.5 pam.d.5 CSTD?= c99 -CFLAGS+= -I${.CURDIR} -I${OPENPAM}/include +CFLAGS+= -I${OPENPAM}/include CFLAGS+= -DLIB_MAJ=${SHLIB_MAJOR} CFLAGS+= -DHAVE_DLFUNC=1 CFLAGS+= -DHAVE_FDLOPEN=1 @@ -172,7 +176,7 @@ HEADERS= security/openpam.h \ ADD_HEADERS= security/pam_mod_misc.h # Headers -INCS= ${HEADERS} ${ADD_HEADERS} +INCS?= ${HEADERS} ${ADD_HEADERS} INCSDIR= ${INCLUDEDIR}/security .include Modified: head/lib/libpam/modules/Makefile.inc ============================================================================== --- head/lib/libpam/modules/Makefile.inc Thu Apr 14 00:25:11 2016 (r297945) +++ head/lib/libpam/modules/Makefile.inc Thu Apr 14 01:17:03 2016 (r297946) @@ -7,14 +7,7 @@ MK_PROFILE= no CFLAGS+= -I${PAMDIR}/include -I${.CURDIR}/../../libpam -# This is nasty. -# For the static case, libpam.a depends on the modules. -# For the dynamic case, the modules depend on libpam.so.N -.if defined(_NO_LIBPAM_SO_YET) -NO_PIC= -.else SHLIB_NAME?= ${LIB}.so.${SHLIB_MAJOR} LIBADD+= pam -.endif .include "../Makefile.inc" Modified: head/lib/libpam/static_libpam/Makefile ============================================================================== --- head/lib/libpam/static_modules/Makefile Thu Apr 14 00:25:11 2016 (r297945) +++ head/lib/libpam/static_libpam/Makefile Thu Apr 14 01:17:03 2016 (r297946) @@ -35,15 +35,17 @@ # # $FreeBSD$ -OPENPAM= ${.CURDIR:H:H:H}/contrib/openpam -.PATH: ${OPENPAM}/lib -.PATH: ${OPENPAM}/lib/libpam +.PATH: ${.CURDIR}/../libpam -all: - -SRCS = openpam_static.c +# Only build the static library. +LIB= pam +NO_PIC= +# Avoid redundancy with the master Makefile. MAN= +INCS= +MLINKS= +MK_TESTS= no # # Static modules @@ -61,11 +63,7 @@ STATICOBJS+= openpam_static_modules.o CLEANFILES+= openpam_static.o \ openpam_static_modules.o -.include - -.if empty(_SKIP_BUILD) openpam_static_modules.o: openpam_static.o ${STATIC_MODULES} ${LD} -o ${.TARGET} -r --whole-archive ${.ALLSRC} -all: ${STATICOBJS} -.endif +.include "${.CURDIR}/../libpam/Makefile" Modified: head/targets/pseudo/userland/lib/Makefile.depend ============================================================================== --- head/targets/pseudo/userland/lib/Makefile.depend Thu Apr 14 00:25:11 2016 (r297945) +++ head/targets/pseudo/userland/lib/Makefile.depend Thu Apr 14 01:17:03 2016 (r297946) @@ -117,6 +117,7 @@ DIRDEPS = \ lib/libpam/modules/pam_ssh \ lib/libpam/modules/pam_tacplus \ lib/libpam/modules/pam_unix \ + lib/libpam/static_libpam \ lib/libpcap \ lib/libpe \ lib/libpjdlog \