[2374] | 1 | From bbab48b047000db0d1821e2f65917c2e8c2c7768 Mon Sep 17 00:00:00 2001 |
---|
| 2 | From: Russ Allbery <rra@stanford.edu> |
---|
| 3 | Date: Mon, 6 Jul 2009 18:41:39 -0700 |
---|
| 4 | Subject: [PATCH] Build and install PIC versions of libafsrpc and libafsauthent |
---|
| 5 | |
---|
| 6 | To include AFS code in loadable modules such as PAM modules, NSS modules, |
---|
| 7 | or Perl/Python/PHP/Ruby extensions, it needs to be built PIC or one must |
---|
| 8 | link with the AFS shared libraries. Since we haven't historically been |
---|
| 9 | that great about maintaining the shared library ABI, it's nice to have |
---|
| 10 | static libraries built with PIC code that can be linked into such modules. |
---|
| 11 | |
---|
| 12 | Based on a patch by Garrett Wollman updated with the build system changes |
---|
| 13 | that happened after 1.4. |
---|
| 14 | |
---|
| 15 | Make shlib makefiles have clean rules for PIC libraries. |
---|
| 16 | Make RedHat specfile know how to deal with PIC libraries. |
---|
| 17 | |
---|
| 18 | Reviewed-on: http://gerrit.openafs.org/8 |
---|
| 19 | Verified-by: Derrick Brashear <shadow@dementia.org> |
---|
| 20 | Reviewed-by: Derrick Brashear <shadow@dementia.org> |
---|
| 21 | Backported-by: Evan Broder <broder@mit.edu> |
---|
| 22 | --- |
---|
| 23 | src/packaging/RedHat/openafs.spec.in | 2 ++ |
---|
| 24 | src/shlibafsauthent/Makefile.in | 20 ++++++++++++++++---- |
---|
| 25 | src/shlibafsrpc/Makefile.in | 18 ++++++++++++++---- |
---|
| 26 | 3 files changed, 32 insertions(+), 8 deletions(-) |
---|
| 27 | |
---|
| 28 | Index: openafs-1.4.6.dfsg1/src/packaging/RedHat/openafs.spec.in |
---|
| 29 | =================================================================== |
---|
| 30 | --- openafs-1.4.6.dfsg1.orig/src/packaging/RedHat/openafs.spec.in 2007-10-18 00:14:18.000000000 -0400 |
---|
| 31 | +++ openafs-1.4.6.dfsg1/src/packaging/RedHat/openafs.spec.in 2009-07-27 01:23:51.000000000 -0400 |
---|
| 32 | @@ -1443,6 +1443,8 @@ |
---|
| 33 | %defattr(-,root,root) |
---|
| 34 | %{_libdir}/libafsauthent.a |
---|
| 35 | %{_libdir}/libafsrpc.a |
---|
| 36 | +%{_libdir}/libafsauthent_pic.a |
---|
| 37 | +%{_libdir}/libafsrpc_pic.a |
---|
| 38 | %if %{build_authlibs} |
---|
| 39 | %{_libdir}/libafsauthent.so |
---|
| 40 | %{_libdir}/libafsrpc.so |
---|
| 41 | Index: openafs-1.4.6.dfsg1/src/shlibafsauthent/Makefile.in |
---|
| 42 | =================================================================== |
---|
| 43 | --- openafs-1.4.6.dfsg1.orig/src/shlibafsauthent/Makefile.in 2006-08-20 16:17:25.000000000 -0400 |
---|
| 44 | +++ openafs-1.4.6.dfsg1/src/shlibafsauthent/Makefile.in 2009-07-27 01:35:11.000000000 -0400 |
---|
| 45 | @@ -104,9 +104,9 @@ |
---|
| 46 | -ln -f -s ${LIBAFSAUTHENT} ${DEST}/lib/libafsauthent.${SHLIB_SUFFIX} |
---|
| 47 | -ln -f -s ${LIBAFSAUTHENT} ${DEST}/lib/libafsauthent.${SHLIB_SUFFIX}.${LIBAFSAUTHENTMAJOR} |
---|
| 48 | |
---|
| 49 | -all: ${TOP_LIBDIR}/${LIBAFSAUTHENT} |
---|
| 50 | +all: ${TOP_LIBDIR}/${LIBAFSAUTHENT} ${TOP_LIBDIR}/libafsauthent_pic.a |
---|
| 51 | |
---|
| 52 | -install: ${DESTDIR}${libdir}/${LIBAFSAUTHENT} |
---|
| 53 | +install: ${DESTDIR}${libdir}/${LIBAFSAUTHENT} ${DESTDIR}${libdir}/libafsauthent_pic.a |
---|
| 54 | |
---|
| 55 | ${LIBAFSAUTHENT}: ${LIBOBJS} |
---|
| 56 | case ${SYS_NAME} in \ |
---|
| 57 | @@ -120,6 +120,11 @@ |
---|
| 58 | ${SHLIB_LINKER} -o ${LIBAFSAUTHENT} ${LIBOBJS} -L${TOP_LIBDIR} -lafsrpc ${MT_LIBS};; \ |
---|
| 59 | esac |
---|
| 60 | |
---|
| 61 | +libafsauthent_pic.a: ${LIBOBJS} |
---|
| 62 | + $(RM) -f $@ |
---|
| 63 | + $(AR) crv $@ ${LIBOBJS} |
---|
| 64 | + $(RANLIB) $@ |
---|
| 65 | + |
---|
| 66 | audit.o: ${AUDIT}/audit.c |
---|
| 67 | ${CCRULE} |
---|
| 68 | |
---|
| 69 | @@ -276,9 +281,15 @@ |
---|
| 70 | -ln -f -s ${LIBAFSAUTHENT} ${DESTDIR}${libdir}/libafsauthent.${SHLIB_SUFFIX} |
---|
| 71 | -ln -f -s ${LIBAFSAUTHENT} ${DESTDIR}${libdir}/libafsauthent.${SHLIB_SUFFIX}.${LIBAFSAUTHENTMAJOR} |
---|
| 72 | |
---|
| 73 | +${DESTDIR}${libdir}/libafsauthent_pic.a: libafsauthent_pic.a |
---|
| 74 | + ${INSTALL} libafsauthent_pic.a $@ |
---|
| 75 | + |
---|
| 76 | ${TOP_LIBDIR}/${LIBAFSAUTHENT}: ${LIBAFSAUTHENT} |
---|
| 77 | ${INSTALL} ${LIBAFSAUTHENT} ${TOP_LIBDIR}/${LIBAFSAUTHENT} |
---|
| 78 | -ln -f -s ${LIBAFSAUTHENT} ${TOP_LIBDIR}/libafsauthent.${SHLIB_SUFFIX} |
---|
| 79 | -ln -f -s ${LIBAFSAUTHENT} ${TOP_LIBDIR}/libafsauthent.${SHLIB_SUFFIX}.${LIBAFSAUTHENTMAJOR} |
---|
| 80 | |
---|
| 81 | -dest: ${DEST}/lib/${LIBAFSAUTHENT} |
---|
| 82 | +${TOP_LIBDIR}/libafsauthent_pic.a: libafsauthent_pic.a |
---|
| 83 | + ${INSTALL} libafsauthent_pic.a $@ |
---|
| 84 | + |
---|
| 85 | +dest: ${DEST}/lib/${LIBAFSAUTHENT} ${DEST}/lib/libafsauthent_pic.a |
---|
| 86 | Index: openafs-1.4.6.dfsg1/src/shlibafsrpc/Makefile.in |
---|
| 87 | =================================================================== |
---|
| 88 | --- openafs-1.4.6.dfsg1.orig/src/shlibafsrpc/Makefile.in 2006-08-20 18:24:10.000000000 -0400 |
---|
| 89 | +++ openafs-1.4.6.dfsg1/src/shlibafsrpc/Makefile.in 2009-07-27 01:34:39.000000000 -0400 |
---|
| 90 | @@ -134,15 +134,17 @@ |
---|
| 91 | |
---|
| 92 | LIBAFSRPC = libafsrpc.${SHLIB_SUFFIX}.${LIBAFSRPCMAJOR}.${LIBAFSRPCMINOR} |
---|
| 93 | |
---|
| 94 | -all: ${TOP_LIBDIR}/${LIBAFSRPC} |
---|
| 95 | +all: ${TOP_LIBDIR}/${LIBAFSRPC} ${TOP_LIBDIR}/libafsrpc_pic.a |
---|
| 96 | |
---|
| 97 | -install: ${DESTDIR}${libdir}/${LIBAFSRPC} |
---|
| 98 | +install: ${DESTDIR}${libdir}/${LIBAFSRPC} ${DESTDIR}${libdir}/libafsrpc_pic.a |
---|
| 99 | |
---|
| 100 | ${DEST}/lib/${LIBAFSRPC}: ${LIBAFSRPC} |
---|
| 101 | ${INSTALL} ${LIBAFSRPC} ${DEST}/lib/${LIBAFSRPC} |
---|
| 102 | -ln -f -s ${LIBAFSRPC} ${DEST}/lib/libafsrpc.${SHLIB_SUFFIX} |
---|
| 103 | -ln -f -s ${LIBAFSRPC} ${DEST}/lib/libafsrpc.${SHLIB_SUFFIX}.${LIBAFSRPCMAJOR} |
---|
| 104 | |
---|
| 105 | +${DEST}/lib/libafsrpc_pic.a: libafsrpc_pic.a |
---|
| 106 | + |
---|
| 107 | ${LIBAFSRPC}: ${LIBOBJS} |
---|
| 108 | case ${SYS_NAME} in \ |
---|
| 109 | rs_aix4* | rs_aix5*) \ |
---|
| 110 | @@ -157,6 +159,11 @@ |
---|
| 111 | ${SHLIB_LINKER} -o ${LIBAFSRPC} ${LIBOBJS} ${MT_LIBS};; \ |
---|
| 112 | esac |
---|
| 113 | |
---|
| 114 | +libafsrpc_pic.a: ${LIBOBJS} |
---|
| 115 | + $(RM) -f $@ |
---|
| 116 | + $(AR) crv $@ ${LIBOBJS} |
---|
| 117 | + $(RANLIB) $@ |
---|
| 118 | + |
---|
| 119 | rx_event.o: ${RX}/rx_event.c |
---|
| 120 | ${CCRULE} |
---|
| 121 | |
---|
| 122 | @@ -418,10 +425,16 @@ |
---|
| 123 | -ln -f -s ${LIBAFSRPC} ${DESTDIR}${libdir}/libafsrpc.${SHLIB_SUFFIX} |
---|
| 124 | -ln -f -s ${LIBAFSRPC} ${DESTDIR}${libdir}/libafsrpc.${SHLIB_SUFFIX}.${LIBAFSRPCMAJOR} |
---|
| 125 | |
---|
| 126 | +${DESTDIR}${libdir}/libafsrpc_pic.a: libafsrpc_pic.a |
---|
| 127 | + ${INSTALL} libafsrpc_pic.a $@ |
---|
| 128 | + |
---|
| 129 | ${TOP_LIBDIR}/${LIBAFSRPC}: ${LIBAFSRPC} |
---|
| 130 | ${INSTALL} ${LIBAFSRPC} ${TOP_LIBDIR}/${LIBAFSRPC} |
---|
| 131 | -ln -f -s ${LIBAFSRPC} ${TOP_LIBDIR}/libafsrpc.${SHLIB_SUFFIX} |
---|
| 132 | -ln -f -s ${LIBAFSRPC} ${TOP_LIBDIR}/libafsrpc.${SHLIB_SUFFIX}.${LIBAFSRPCMAJOR} |
---|
| 133 | |
---|
| 134 | -dest: ${DEST}/lib/${LIBAFSRPC} |
---|
| 135 | +${TOP_LIBDIR}/libafsrpc_pic.a: libafsrpc_pic.a |
---|
| 136 | + ${INSTALL} libafsrpc_pic.a $@ |
---|
| 137 | + |
---|
| 138 | +dest: ${DEST}/lib/${LIBAFSRPC} ${DEST}/lib/libafsrpc_pic.a |
---|
| 139 | |
---|