Hex Artifact Content

Artifact 68146d5f5aeb06098b2bde5540a7ebb73616041d:


0000: 41 43 5f 44 45 46 55 4e 28 5b 44 43 5f 53 45 54  AC_DEFUN([DC_SET
0010: 55 50 5f 53 54 41 42 4c 45 5f 41 50 49 5d 2c 20  UP_STABLE_API], 
0020: 5b 0a 09 56 45 52 53 49 4f 4e 53 43 52 49 50 54  [..VERSIONSCRIPT
0030: 3d 22 24 31 22 0a 09 53 59 4d 46 49 4c 45 3d 22  ="$1"..SYMFILE="
0040: 24 32 22 0a 0a 09 44 43 5f 46 49 4e 44 5f 53 54  $2"...DC_FIND_ST
0050: 52 49 50 5f 41 4e 44 5f 52 45 4d 4f 56 45 53 59  RIP_AND_REMOVESY
0060: 4d 53 28 5b 24 53 59 4d 46 49 4c 45 5d 29 0a 09  MS([$SYMFILE])..
0070: 44 43 5f 53 45 54 56 45 52 53 49 4f 4e 53 43 52  DC_SETVERSIONSCR
0080: 49 50 54 28 5b 24 56 45 52 53 49 4f 4e 53 43 52  IPT([$VERSIONSCR
0090: 49 50 54 5d 2c 20 5b 24 53 59 4d 46 49 4c 45 5d  IPT], [$SYMFILE]
00a0: 29 0a 5d 29 0a 0a 0a 41 43 5f 44 45 46 55 4e 28  ).])...AC_DEFUN(
00b0: 5b 44 43 5f 53 45 54 56 45 52 53 49 4f 4e 53 43  [DC_SETVERSIONSC
00c0: 52 49 50 54 5d 2c 20 5b 0a 09 56 45 52 53 49 4f  RIPT], [..VERSIO
00d0: 4e 53 43 52 49 50 54 3d 22 24 31 22 0a 09 53 59  NSCRIPT="$1"..SY
00e0: 4d 46 49 4c 45 3d 22 24 32 22 0a 09 54 4d 50 53  MFILE="$2"..TMPS
00f0: 59 4d 46 49 4c 45 3d 22 24 7b 53 59 4d 46 49 4c  YMFILE="${SYMFIL
0100: 45 7d 2e 74 6d 70 22 0a 09 54 4d 50 56 45 52 53  E}.tmp"..TMPVERS
0110: 49 4f 4e 53 43 52 49 50 54 3d 22 24 7b 56 45 52  IONSCRIPT="${VER
0120: 53 49 4f 4e 53 43 52 49 50 54 7d 2e 74 6d 70 22  SIONSCRIPT}.tmp"
0130: 0a 0a 09 65 63 68 6f 20 22 24 7b 53 59 4d 50 52  ...echo "${SYMPR
0140: 45 46 49 58 7d 54 65 73 74 5f 53 79 6d 62 6f 6c  EFIX}Test_Symbol
0150: 22 20 3e 20 22 24 7b 54 4d 50 53 59 4d 46 49 4c  " > "${TMPSYMFIL
0160: 45 7d 22 0a 0a 09 65 63 68 6f 20 27 7b 27 20 3e  E}"...echo '{' >
0170: 20 22 24 7b 54 4d 50 56 45 52 53 49 4f 4e 53 43   "${TMPVERSIONSC
0180: 52 49 50 54 7d 22 0a 09 65 63 68 6f 20 27 09 6c  RIPT}"..echo '.l
0190: 6f 63 61 6c 3a 27 20 3e 3e 20 22 24 7b 54 4d 50  ocal:' >> "${TMP
01a0: 56 45 52 53 49 4f 4e 53 43 52 49 50 54 7d 22 0a  VERSIONSCRIPT}".
01b0: 09 65 63 68 6f 20 22 09 09 24 7b 53 59 4d 50 52  .echo "..${SYMPR
01c0: 45 46 49 58 7d 54 65 73 74 5f 53 79 6d 62 6f 6c  EFIX}Test_Symbol
01d0: 3b 22 20 3e 3e 20 22 24 7b 54 4d 50 56 45 52 53  ;" >> "${TMPVERS
01e0: 49 4f 4e 53 43 52 49 50 54 7d 22 0a 09 65 63 68  IONSCRIPT}"..ech
01f0: 6f 20 27 7d 3b 27 20 3e 3e 20 22 24 7b 54 4d 50  o '};' >> "${TMP
0200: 56 45 52 53 49 4f 4e 53 43 52 49 50 54 7d 22 0a  VERSIONSCRIPT}".
0210: 0a 09 53 41 56 45 5f 4c 44 46 4c 41 47 53 3d 22  ..SAVE_LDFLAGS="
0220: 24 7b 4c 44 46 4c 41 47 53 7d 22 0a 0a 09 41 43  ${LDFLAGS}"...AC
0230: 5f 4d 53 47 5f 43 48 45 43 4b 49 4e 47 28 5b 66  _MSG_CHECKING([f
0240: 6f 72 20 68 6f 77 20 74 6f 20 73 65 74 20 76 65  or how to set ve
0250: 72 73 69 6f 6e 20 73 63 72 69 70 74 5d 29 0a 0a  rsion script])..
0260: 09 66 6f 72 20 74 72 79 61 64 64 6c 64 66 6c 61  .for tryaddldfla
0270: 67 73 20 69 6e 20 22 2d 57 6c 2c 2d 2d 76 65 72  gs in "-Wl,--ver
0280: 73 69 6f 6e 2d 73 63 72 69 70 74 2c 24 7b 54 4d  sion-script,${TM
0290: 50 56 45 52 53 49 4f 4e 53 43 52 49 50 54 7d 22  PVERSIONSCRIPT}"
02a0: 20 22 2d 57 6c 2c 2d 65 78 70 6f 72 74 65 64 5f   "-Wl,-exported_
02b0: 73 79 6d 62 6f 6c 73 5f 6c 69 73 74 2c 24 7b 54  symbols_list,${T
02c0: 4d 50 53 59 4d 46 49 4c 45 7d 22 3b 20 64 6f 0a  MPSYMFILE}"; do.
02d0: 09 09 4c 44 46 4c 41 47 53 3d 22 24 7b 53 41 56  ..LDFLAGS="${SAV
02e0: 45 5f 4c 44 46 4c 41 47 53 7d 20 24 7b 74 72 79  E_LDFLAGS} ${try
02f0: 61 64 64 6c 64 66 6c 61 67 73 7d 22 0a 09 09 41  addldflags}"...A
0300: 43 5f 54 52 59 5f 4c 49 4e 4b 28 5b 76 6f 69 64  C_TRY_LINK([void
0310: 20 54 65 73 74 5f 53 79 6d 62 6f 6c 28 76 6f 69   Test_Symbol(voi
0320: 64 29 20 7b 20 72 65 74 75 72 6e 3b 20 7d 5d 2c  d) { return; }],
0330: 20 5b 5d 2c 20 5b 0a 09 09 09 61 64 64 6c 64 66   [], [....addldf
0340: 6c 61 67 73 3d 22 60 65 63 68 6f 20 22 24 7b 74  lags="`echo "${t
0350: 72 79 61 64 64 6c 64 66 6c 61 67 73 7d 22 20 7c  ryaddldflags}" |
0360: 20 73 65 64 20 27 73 2f 5c 2e 74 6d 70 24 2f 2f   sed 's/\.tmp$//
0370: 27 60 22 0a 0a 09 09 09 62 72 65 61 6b 0a 09 09  '`".....break...
0380: 5d 29 0a 09 64 6f 6e 65 0a 0a 09 72 6d 20 2d 66  ])..done...rm -f
0390: 20 22 24 7b 54 4d 50 53 59 4d 46 49 4c 45 7d 22   "${TMPSYMFILE}"
03a0: 0a 09 72 6d 20 2d 66 20 22 24 7b 54 4d 50 56 45  ..rm -f "${TMPVE
03b0: 52 53 49 4f 4e 53 43 52 49 50 54 7d 22 0a 0a 09  RSIONSCRIPT}"...
03c0: 69 66 20 74 65 73 74 20 2d 6e 20 22 24 7b 61 64  if test -n "${ad
03d0: 64 6c 64 66 6c 61 67 73 7d 22 3b 20 74 68 65 6e  dldflags}"; then
03e0: 0a 09 09 4c 44 46 4c 41 47 53 3d 22 24 7b 53 41  ...LDFLAGS="${SA
03f0: 56 45 5f 4c 44 46 4c 41 47 53 7d 20 24 7b 61 64  VE_LDFLAGS} ${ad
0400: 64 6c 64 66 6c 61 67 73 7d 22 0a 09 09 41 43 5f  dldflags}"...AC_
0410: 4d 53 47 5f 52 45 53 55 4c 54 28 24 61 64 64 6c  MSG_RESULT($addl
0420: 64 66 6c 61 67 73 29 0a 09 65 6c 73 65 0a 09 09  dflags)..else...
0430: 4c 44 46 4c 41 47 53 3d 22 24 7b 53 41 56 45 5f  LDFLAGS="${SAVE_
0440: 4c 44 46 4c 41 47 53 7d 22 0a 09 09 41 43 5f 4d  LDFLAGS}"...AC_M
0450: 53 47 5f 52 45 53 55 4c 54 28 5b 64 6f 6e 27 74  SG_RESULT([don't
0460: 20 6b 6e 6f 77 5d 29 0a 09 66 69 0a 5d 29 0a 0a   know])..fi.])..
0470: 41 43 5f 44 45 46 55 4e 28 5b 44 43 5f 46 49 4e  AC_DEFUN([DC_FIN
0480: 44 5f 53 54 52 49 50 5f 41 4e 44 5f 52 45 4d 4f  D_STRIP_AND_REMO
0490: 56 45 53 59 4d 53 5d 2c 20 5b 0a 09 53 59 4d 46  VESYMS], [..SYMF
04a0: 49 4c 45 3d 22 24 31 22 0a 0a 09 64 6e 6c 20 44  ILE="$1"...dnl D
04b0: 65 74 65 72 6d 69 6e 65 20 68 6f 77 20 74 6f 20  etermine how to 
04c0: 73 74 72 69 70 20 65 78 65 63 75 74 61 62 6c 65  strip executable
04d0: 73 0a 09 41 43 5f 43 48 45 43 4b 5f 54 4f 4f 4c  s..AC_CHECK_TOOL
04e0: 53 28 4f 42 4a 43 4f 50 59 2c 20 6f 62 6a 63 6f  S(OBJCOPY, objco
04f0: 70 79 20 67 6f 62 6a 63 6f 70 79 2c 20 5b 66 61  py gobjcopy, [fa
0500: 6c 73 65 5d 29 0a 09 41 43 5f 43 48 45 43 4b 5f  lse])..AC_CHECK_
0510: 54 4f 4f 4c 53 28 53 54 52 49 50 2c 20 73 74 72  TOOLS(STRIP, str
0520: 69 70 20 67 73 74 72 69 70 2c 20 5b 66 61 6c 73  ip gstrip, [fals
0530: 65 5d 29 0a 0a 09 69 66 20 74 65 73 74 20 22 78  e])...if test "x
0540: 24 7b 53 54 52 49 50 7d 22 20 3d 20 22 78 66 61  ${STRIP}" = "xfa
0550: 6c 73 65 22 3b 20 74 68 65 6e 0a 09 09 53 54 52  lse"; then...STR
0560: 49 50 3d 22 24 7b 4f 42 4a 43 4f 50 59 7d 22 0a  IP="${OBJCOPY}".
0570: 09 66 69 0a 0a 09 57 45 41 4b 45 4e 53 59 4d 53  .fi...WEAKENSYMS
0580: 3d 27 74 72 75 65 27 0a 09 52 45 4d 4f 56 45 53  ='true'..REMOVES
0590: 59 4d 53 3d 27 74 72 75 65 27 0a 09 53 59 4d 50  YMS='true'..SYMP
05a0: 52 45 46 49 58 3d 27 27 0a 0a 09 63 61 73 65 20  REFIX=''...case 
05b0: 24 68 6f 73 74 5f 6f 73 20 69 6e 0a 09 09 64 61  $host_os in...da
05c0: 72 77 69 6e 2a 29 0a 09 09 09 53 59 4d 50 52 45  rwin*)....SYMPRE
05d0: 46 49 58 3d 22 5f 22 0a 09 09 09 52 45 4d 4f 56  FIX="_"....REMOV
05e0: 45 53 59 4d 53 3d 22 24 7b 53 54 52 49 50 7d 20  ESYMS="${STRIP} 
05f0: 2d 75 20 2d 78 22 0a 09 09 09 3b 3b 0a 09 09 2a  -u -x"....;;...*
0600: 29 0a 09 09 09 69 66 20 74 65 73 74 20 22 78 24  )....if test "x$
0610: 7b 4f 42 4a 43 4f 50 59 7d 22 20 21 3d 20 22 78  {OBJCOPY}" != "x
0620: 66 61 6c 73 65 22 3b 20 74 68 65 6e 0a 09 09 09  false"; then....
0630: 09 57 45 41 4b 45 4e 53 59 4d 53 3d 22 24 7b 4f  .WEAKENSYMS="${O
0640: 42 4a 43 4f 50 59 7d 20 2d 2d 6b 65 65 70 2d 67  BJCOPY} --keep-g
0650: 6c 6f 62 61 6c 2d 73 79 6d 62 6f 6c 73 3d 24 7b  lobal-symbols=${
0660: 53 59 4d 46 49 4c 45 7d 22 0a 09 09 09 09 52 45  SYMFILE}".....RE
0670: 4d 4f 56 45 53 59 4d 53 3d 22 24 7b 4f 42 4a 43  MOVESYMS="${OBJC
0680: 4f 50 59 7d 20 2d 2d 64 69 73 63 61 72 64 2d 61  OPY} --discard-a
0690: 6c 6c 22 0a 09 09 09 65 6c 69 66 20 74 65 73 74  ll"....elif test
06a0: 20 22 78 24 7b 53 54 52 49 50 7d 22 20 21 3d 20   "x${STRIP}" != 
06b0: 22 78 66 61 6c 73 65 22 3b 20 74 68 65 6e 0a 09  "xfalse"; then..
06c0: 09 09 09 52 45 4d 4f 56 45 53 59 4d 53 3d 22 24  ...REMOVESYMS="$
06d0: 7b 53 54 52 49 50 7d 20 2d 78 22 0a 09 09 09 66  {STRIP} -x"....f
06e0: 69 0a 09 09 09 3b 3b 0a 09 65 73 61 63 0a 0a 09  i....;;..esac...
06f0: 41 43 5f 53 55 42 53 54 28 57 45 41 4b 45 4e 53  AC_SUBST(WEAKENS
0700: 59 4d 53 29 0a 09 41 43 5f 53 55 42 53 54 28 52  YMS)..AC_SUBST(R
0710: 45 4d 4f 56 45 53 59 4d 53 29 0a 09 41 43 5f 53  EMOVESYMS)..AC_S
0720: 55 42 53 54 28 53 59 4d 50 52 45 46 49 58 29 0a  UBST(SYMPREFIX).
0730: 5d 29 0a                                         ]).