1 AC_DEFUN(DC_SETVERSIONSCRIPT, [ 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 11 12 SAVE_LDFLAGS="${LDFLAGS}" 13 14 AC_MSG_CHECKING([for how to set version script]) 15 16 for tryaddldflags in "-Wl,--version-script -Wl,${VERSIONSCRIPT}" "-Wl,-exported_symbols_list -Wl,${SYMFILE}"; do 17 LDFLAGS="${SAVE_LDFLAGS} ${tryaddldflags}" 18 AC_TRY_LINK([], [], [ 19 addldflags="${tryaddldflags}" 20 21 break 22 ]) 23 done 24 25 if test "${delete_symfile}" = "1"; then 26 rm -f "${SYMFILE}" 27 fi 28 29 if test -n "${addldflags}"; then 30 LDFLAGS="${SAVE_LDFLAGS} ${addldflags}" 31 AC_MSG_RESULT($addldflags) 32 else 33 LDFLAGS="${SAVE_LDFLAGS}" 34 AC_MSG_RESULT([don't know]) 35 fi 36 ]) 37 38 AC_DEFUN(DC_FIND_STRIP_AND_REMOVESYMS, [ 39 SYMFILE="$1" 40 41 dnl Determine how to strip executables 42 AC_CHECK_TOOLS(OBJCOPY, objcopy gobjcopy, [false]) 43 AC_CHECK_TOOLS(STRIP, strip gstrip, [false]) 44 45 if test "x${STRIP}" = "xfalse"; then 46 STRIP="${OBJCOPY}" 47 fi 48 49 WEAKENSYMS='true' 50 REMOVESYMS='true' 51 SYMPREFIX='' 52 53 case $host_os in 54 darwin*) 55 REMOVESYMS="${STRIP} -i -u -s ${SYMFILE}" 56 SYMPREFIX="_" 57 ;; 58 *) 59 if test "x${OBJCOPY}" != "xfalse"; then 60 WEAKENSYMS="${OBJCOPY} --keep-global-symbols=${SYMFILE}" 61 REMOVESYMS="${OBJCOPY} --discard-all" 62 elif test "x${STRIP}" != "xfalse"; then 63 REMOVESYMS="${STRIP} -x" 64 fi 65 ;; 66 esac 67 68 AC_SUBST(WEAKENSYMS) 69 AC_SUBST(REMOVESYMS) 70 AC_SUBST(SYMPREFIX) 71 ]) |