]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
Ensure PAM modules are built PIC and pthread-aware where needed
authorRuss Allbery <rra@stanford.edu>
Sun, 12 Jul 2009 16:07:12 +0000 (09:07 -0700)
committerDerrick Brashear <shadow@dementia.org>
Mon, 13 Jul 2009 20:40:40 +0000 (14:40 -0600)
Link the PAM modules against libafsauthent_pic and libafsrpc_pic instead
of the large collection of LWP AFS libraries so that they are always
built PIC, even on platforms that don't normally build everything PIC.
This also uses the pthread-aware version of the AFS routines on platforms
that support it, avoiding conflict problems between LWP in PAM modules
and pthread in a calling application.

Build a separate copy of ktc.krb.o in the pam directory for pam_afs.krb
since there is no AFS_KERBEROS_ENV-aware version of libafsauthent.

Enable the PAM module build by default on x86_64-linux now that it's
properly built PIC and can compile.

Stop ignoring build failures in the PAM modules if they're configured to
build.  On platforms where they should not be built, they should be
excluded in acinclude.m4.

Reviewed-on: http://gerrit.openafs.org/65
Verified-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Makefile.in
acinclude.m4
src/pam/Makefile.in

index 632c9616d81ec13aaf8fe7ee4a60156d99d221e4..08c7f21818976c8d3205629042e044e89cbd4a73 100644 (file)
@@ -334,7 +334,7 @@ vfsck:      vol
                ${COMPILE_PART1} vfsck ${COMPILE_PART2} ;; \
        esac
 
-pam: cmd comerr kauth rxkad
+pam: auth shlibafsauthent shlibafsrpc
        +set -x; \
        if test "@HAVE_PAM@" = "yes"; then \
                ${COMPILE_PART1} pam ${COMPILE_PART2} ; \
index 54fa21bef2b1d378e8f8e47de6dce79b7552f32b..21e626ac00bb073f0a36e5453806350a7ec4423f 100644 (file)
@@ -778,7 +778,7 @@ else
                        ;;
                x86_64-*-linux-gnu)
                        AFS_SYSNAME="amd64_linuxXX"
-                       enable_pam="no"
+                       enable_pam="yes"
                        ;;
                *)
                        AC_MSG_ERROR(An AFS sysname is required)
index ae1eefe3813e5c93061c4a1693c636c23b98619a..020959e672b2c9daae35f7398de22de6d66fe1ce 100644 (file)
@@ -21,10 +21,10 @@ AFSLIBS = ${TOP_LIBDIR}/librxkad.a ${TOP_LIBDIR}/libsys.a \
          ${TOP_LIBDIR}/util.a
 
 LDFLAGS = ${SHLIB_LDFLAGS}
-   LIBS = ${TOP_LIBDIR}/libkauth.a ${LIBSA} ${TOP_LIBDIR}/libauth.a \
-         ${AFSLIBS} ${PAM_LIBS} @LIB_AFSDB@
-  KLIBS = ${TOP_LIBDIR}/libkauth.krb.a ${LIBSA} ${TOP_LIBDIR}/libauth.krb.a \
-         ${AFSLIBS} ${PAM_LIBS} @LIB_AFSDB@
+   LIBS = ${TOP_LIBDIR}/libafsauthent_pic.a ${TOP_LIBDIR}/libafsrpc_pic.a \
+         ${PAM_LIBS} @LIB_AFSDB@ ${MT_LIBS}
+  KLIBS = ktc_krb.o ${TOP_LIBDIR}/libafsauthent_pic.a \
+         ${TOP_LIBDIR}/libafsrpc_pic.a ${PAM_LIBS} @LIB_AFSDB@ ${MT_LIBS}
  SHOBJS = afs_account.o afs_session.o afs_password.o \
          afs_pam_msg.o afs_message.o AFS_component_version_number.o
    OBJS = $(SHOBJS) test_pam.o
@@ -51,12 +51,20 @@ afs_util.o: afs_util.c afs_pam_msg.h afs_message.h afs_util.h
 afs_util_krb.o: afs_util.c afs_pam_msg.h afs_message.h afs_util.h
        ${CC} ${CFLAGS} -DAFS_KERBEROS_ENV -c ${srcdir}/afs_util.c -o afs_util_krb.o
 
-pam_afs.so.1: $(SHOBJS) afs_setcred.o afs_auth.o afs_util.o
-       -../config/shlib-build -d $(srcdir) -f pam_afs.so.1 -l pam_afs -- \
+ktc_krb.o: ${srcdir}/../auth/ktc.c ${srcdir}/../auth/cellconfig.h \
+               ${srcdir}/../auth/auth.h ${srcdir}/../auth/keys.h \
+               ${TOP_INCDIR}/afs/vice.h
+       ${CC} ${CFLAGS} -DAFS_KERBEROS_ENV -c ${srcdir}/../auth/ktc.c -o $@
+
+pam_afs.so.1: $(SHOBJS) afs_setcred.o afs_auth.o afs_util.o \
+               ${TOP_LIBDIR}/libafsauthent_pic.a ${TOP_LIBDIR}/libafsrpc_pic.a
+       ../config/shlib-build -d $(srcdir) -f pam_afs.so.1 -l pam_afs -- \
                afs_setcred.o afs_auth.o afs_util.o ${SHOBJS} ${LIBS}
 
-pam_afs.krb.so.1: $(SHOBJS) afs_setcred_krb.o afs_auth_krb.o afs_util_krb.o
-       -../config/shlib-build -d $(srcdir) -f pam_afs.krb.so.1 -l pam_afs -- \
+pam_afs.krb.so.1: $(SHOBJS) afs_setcred_krb.o afs_auth_krb.o afs_util_krb.o \
+               ktc_krb.o ${TOP_LIBDIR}/libafsauthent_pic.a \
+               ${TOP_LIBDIR}/libafsrpc_pic.a
+       ../config/shlib-build -d $(srcdir) -f pam_afs.krb.so.1 -l pam_afs -- \
                afs_setcred_krb.o afs_auth_krb.o afs_util_krb.o \
                ${SHOBJS} ${KLIBS}
 
@@ -77,13 +85,13 @@ test_pam: test_pam.o
 
 install: pam_afs.so.1 pam_afs.krb.so.1
        ${INSTALL} -d ${DESTDIR}${libdir}
-       -${INSTALL_DATA} pam_afs.so.1 ${DESTDIR}${libdir}/pam_afs.so.1
-       -${INSTALL_DATA} pam_afs.krb.so.1 ${DESTDIR}${libdir}/pam_afs.krb.so.1
+       ${INSTALL_DATA} pam_afs.so.1 ${DESTDIR}${libdir}/pam_afs.so.1
+       ${INSTALL_DATA} pam_afs.krb.so.1 ${DESTDIR}${libdir}/pam_afs.krb.so.1
 
 dest: pam_afs.so.1 pam_afs.krb.so.1
        ${INSTALL} -d ${DEST}/lib
-       -${INSTALL_DATA} pam_afs.so.1 ${DEST}/lib/pam_afs.so.1
-       -${INSTALL_DATA} pam_afs.krb.so.1 ${DEST}/lib/pam_afs.krb.so.1
+       ${INSTALL_DATA} pam_afs.so.1 ${DEST}/lib/pam_afs.so.1
+       ${INSTALL_DATA} pam_afs.krb.so.1 ${DEST}/lib/pam_afs.krb.so.1
 
 afs_pam_msg.o: afs_pam_msg.c afs_pam_msg.h afs_message.h
 afs_message.o: afs_message.c afs_message.h