Overview
Comment: | More work towards getting Mac OS X to export only the symbols we care about |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: | fa022cbc5d3145d5a144087402b5d567edbf5a4a |
User & Date: | rkeene on 2011-09-08 03:42:02 |
Other Links: | manifest | tags |
Context
2011-09-08
| ||
03:48 | CACKey 0.6.5 check-in: ed5f20c85e user: rkeene tags: trunk, 0.6.5 | |
03:42 | More work towards getting Mac OS X to export only the symbols we care about check-in: fa022cbc5d user: rkeene tags: trunk | |
03:01 |
CACKey 0.6.4
Moved determining how to weaken and strip symbols into an autoconf macro Added support for stripping symbols to Mac OS X builds check-in: 521abe23e2 user: rkeene tags: trunk, 0.6.4 | |
Changes
Modified Makefile.in from [62d627a191] to [6f86f7629d].
51 51 rm -f libcackey.@SHOBJEXT@.def libcackey_g.@SHOBJEXT@.def 52 52 rm -f libcackey.@SHOBJEXT@.a libcackey_g.@SHOBJEXT@.a 53 53 rm -f cackey.o cackey_g.o 54 54 rm -f test 55 55 rm -f splint-cackey.txt 56 56 57 57 distclean: clean 58 - rm -f config.log config.status config.h Makefile 58 + rm -f config.log config.status config.h Makefile libcackey.syms 59 59 60 60 mrproper: distclean 61 61 rm -f configure config.h.in aclocal.m4 *~ 62 62 63 63 .PHONY: all clean distclean mrproper install
Modified aclocal/dc_versionscript.m4 from [7b1ee0452b] to [4ebe0b5820].
1 1 AC_DEFUN(DC_SETVERSIONSCRIPT, [ 2 2 VERSIONSCRIPT="$1" 3 + SYMFILE="$2" 4 + 5 + delete_symfile='0' 6 + if test ! -f "${SYMFILE}"; then 7 + delete_symfile='1' 8 + 9 + echo '' > "${SYMFILE}" 10 + fi 3 11 4 12 SAVE_LDFLAGS="${LDFLAGS}" 5 13 6 14 AC_MSG_CHECKING([for how to set version script]) 7 15 8 - for tryaddldflags in "-Wl,--version-script -Wl,${VERSIONSCRIPT}"; do 16 + for tryaddldflags in "-Wl,--version-script -Wl,${VERSIONSCRIPT}" "-Wl,-exported_symbols_list -Wl,${SYMFILE}"; do 9 17 LDFLAGS="${SAVE_LDFLAGS} ${tryaddldflags}" 10 18 AC_TRY_LINK([], [], [ 11 19 addldflags="${tryaddldflags}" 12 20 13 21 break 14 22 ]) 15 23 done 24 + 25 + if test "${delete_symfile}" = "1"; then 26 + rm -f "${SYMFILE}" 27 + fi 16 28 17 29 if test -n "${addldflags}"; then 18 30 LDFLAGS="${SAVE_LDFLAGS} ${addldflags}" 19 31 AC_MSG_RESULT($addldflags) 20 32 else 21 33 LDFLAGS="${SAVE_LDFLAGS}" 22 34 AC_MSG_RESULT([don't know]) ................................................................................ 32 44 33 45 if test "x${STRIP}" = "xfalse"; then 34 46 STRIP="${OBJCOPY}" 35 47 fi 36 48 37 49 WEAKENSYMS='true' 38 50 REMOVESYMS='true' 51 + SYMPREFIX='' 39 52 40 53 case $host_os in 41 54 darwin*) 42 - REMOVESYMS="${STRIP} -s ${SYMFILE}" 55 + REMOVESYMS="${STRIP} -i -u -s ${SYMFILE}" 56 + SYMPREFIX="_" 43 57 ;; 44 58 *) 45 59 if test "x${OBJCOPY}" != "xfalse"; then 46 60 WEAKENSYMS="${OBJCOPY} --keep-global-symbols=${SYMFILE}" 47 61 REMOVESYMS="${OBJCOPY} --discard-all" 48 62 elif test "x${STRIP}" != "xfalse"; then 49 63 REMOVESYMS="${STRIP} -x" 50 64 fi 51 65 ;; 52 66 esac 53 67 54 68 AC_SUBST(WEAKENSYMS) 55 69 AC_SUBST(REMOVESYMS) 70 + AC_SUBST(SYMPREFIX) 56 71 ])
Modified configure.ac from [f51a90fd29] to [108697b5ff].
139 139 AC_MSG_RESULT(failed) 140 140 141 141 AC_MSG_FAILURE([simple PC/SC program failed]) 142 142 ] 143 143 ) 144 144 145 145 dnl Set version script, to limit the scope of symbols 146 -DC_SETVERSIONSCRIPT(libcackey.vers) 146 +DC_SETVERSIONSCRIPT(libcackey.vers, libcackey.syms) 147 147 148 148 dnl Upate LDFLAGS to include setting the run-time linker path to the same as our compile-time linker 149 149 DC_SYNC_RPATH 150 150 151 151 dnl If we updated LIBOBJS, update SHLIBOBJS -- must be last. 152 152 DC_SYNC_SHLIBOBJS 153 153 154 154 dnl Produce Makefile 155 -AC_OUTPUT(Makefile) 155 +AC_OUTPUT(Makefile libcackey.syms)
Modified libcackey.syms.in from [cfac1b7560] to [546f0d7df5].
1 -C_CancelFunction 2 -C_CloseAllSessions 3 -C_CloseSession 4 -C_CopyObject 5 -C_CreateObject 6 -C_Decrypt 7 -C_DecryptDigestUpdate 8 -C_DecryptFinal 9 -C_DecryptInit 10 -C_DecryptUpdate 11 -C_DecryptVerifyUpdate 12 -C_DeriveKey 13 -C_DestroyObject 14 -C_Digest 15 -C_DigestEncryptUpdate 16 -C_DigestFinal 17 -C_DigestInit 18 -C_DigestKey 19 -C_DigestUpdate 20 -C_Encrypt 21 -C_EncryptFinal 22 -C_EncryptInit 23 -C_EncryptUpdate 24 -C_Finalize 25 -C_FindObjects 26 -C_FindObjectsFinal 27 -C_FindObjectsInit 28 -C_GenerateKey 29 -C_GenerateKeyPair 30 -C_GenerateRandom 31 -C_GetAttributeValue 32 -C_GetFunctionList 33 -C_GetFunctionStatus 34 -C_GetInfo 35 -C_GetMechanismInfo 36 -C_GetMechanismList 37 -C_GetObjectSize 38 -C_GetOperationState 39 -C_GetSessionInfo 40 -C_GetSlotInfo 41 -C_GetSlotList 42 -C_GetTokenInfo 43 -C_InitPIN 44 -C_InitToken 45 -C_Initialize 46 -C_Login 47 -C_Logout 48 -C_OpenSession 49 -C_SeedRandom 50 -C_SetAttributeValue 51 -C_SetOperationState 52 -C_SetPIN 53 -C_Sign 54 -C_SignEncryptUpdate 55 -C_SignFinal 56 -C_SignInit 57 -C_SignRecover 58 -C_SignRecoverInit 59 -C_SignUpdate 60 -C_UnwrapKey 61 -C_Verify 62 -C_VerifyFinal 63 -C_VerifyInit 64 -C_VerifyRecover 65 -C_VerifyRecoverInit 66 -C_VerifyUpdate 67 -C_WaitForSlotEvent 68 -C_WrapKey 1 +@SYMPREFIX@C_CancelFunction 2 +@SYMPREFIX@C_CloseAllSessions 3 +@SYMPREFIX@C_CloseSession 4 +@SYMPREFIX@C_CopyObject 5 +@SYMPREFIX@C_CreateObject 6 +@SYMPREFIX@C_Decrypt 7 +@SYMPREFIX@C_DecryptDigestUpdate 8 +@SYMPREFIX@C_DecryptFinal 9 +@SYMPREFIX@C_DecryptInit 10 +@SYMPREFIX@C_DecryptUpdate 11 +@SYMPREFIX@C_DecryptVerifyUpdate 12 +@SYMPREFIX@C_DeriveKey 13 +@SYMPREFIX@C_DestroyObject 14 +@SYMPREFIX@C_Digest 15 +@SYMPREFIX@C_DigestEncryptUpdate 16 +@SYMPREFIX@C_DigestFinal 17 +@SYMPREFIX@C_DigestInit 18 +@SYMPREFIX@C_DigestKey 19 +@SYMPREFIX@C_DigestUpdate 20 +@SYMPREFIX@C_Encrypt 21 +@SYMPREFIX@C_EncryptFinal 22 +@SYMPREFIX@C_EncryptInit 23 +@SYMPREFIX@C_EncryptUpdate 24 +@SYMPREFIX@C_Finalize 25 +@SYMPREFIX@C_FindObjects 26 +@SYMPREFIX@C_FindObjectsFinal 27 +@SYMPREFIX@C_FindObjectsInit 28 +@SYMPREFIX@C_GenerateKey 29 +@SYMPREFIX@C_GenerateKeyPair 30 +@SYMPREFIX@C_GenerateRandom 31 +@SYMPREFIX@C_GetAttributeValue 32 +@SYMPREFIX@C_GetFunctionList 33 +@SYMPREFIX@C_GetFunctionStatus 34 +@SYMPREFIX@C_GetInfo 35 +@SYMPREFIX@C_GetMechanismInfo 36 +@SYMPREFIX@C_GetMechanismList 37 +@SYMPREFIX@C_GetObjectSize 38 +@SYMPREFIX@C_GetOperationState 39 +@SYMPREFIX@C_GetSessionInfo 40 +@SYMPREFIX@C_GetSlotInfo 41 +@SYMPREFIX@C_GetSlotList 42 +@SYMPREFIX@C_GetTokenInfo 43 +@SYMPREFIX@C_InitPIN 44 +@SYMPREFIX@C_InitToken 45 +@SYMPREFIX@C_Initialize 46 +@SYMPREFIX@C_Login 47 +@SYMPREFIX@C_Logout 48 +@SYMPREFIX@C_OpenSession 49 +@SYMPREFIX@C_SeedRandom 50 +@SYMPREFIX@C_SetAttributeValue 51 +@SYMPREFIX@C_SetOperationState 52 +@SYMPREFIX@C_SetPIN 53 +@SYMPREFIX@C_Sign 54 +@SYMPREFIX@C_SignEncryptUpdate 55 +@SYMPREFIX@C_SignFinal 56 +@SYMPREFIX@C_SignInit 57 +@SYMPREFIX@C_SignRecover 58 +@SYMPREFIX@C_SignRecoverInit 59 +@SYMPREFIX@C_SignUpdate 60 +@SYMPREFIX@C_UnwrapKey 61 +@SYMPREFIX@C_Verify 62 +@SYMPREFIX@C_VerifyFinal 63 +@SYMPREFIX@C_VerifyInit 64 +@SYMPREFIX@C_VerifyRecover 65 +@SYMPREFIX@C_VerifyRecoverInit 66 +@SYMPREFIX@C_VerifyUpdate 67 +@SYMPREFIX@C_WaitForSlotEvent 68 +@SYMPREFIX@C_WrapKey