-retain-symbols-file is not what it seems. Update the makefiles
[oota-llvm.git] / autoconf / m4 / link_options.m4
1 #
2 # Determine if the system can handle the -R option being passed to the linker.
3 #
4 # This macro is specific to LLVM.
5 #
6 AC_DEFUN([AC_LINK_USE_R],
7 [AC_CACHE_CHECK([for compiler -Wl,-R<path> option],[llvm_cv_link_use_r],
8 [ AC_LANG_PUSH([C])
9   oldcflags="$CFLAGS"
10   CFLAGS="$CFLAGS -Wl,-R."
11   AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],
12     [llvm_cv_link_use_r=yes],[llvm_cv_link_use_r=no])
13   CFLAGS="$oldcflags"
14   AC_LANG_POP([C])
15 ])
16 if test "$llvm_cv_link_use_r" = yes ; then
17   AC_DEFINE([HAVE_LINK_R],[1],[Define if you can use -Wl,-R. to pass -R. to the linker, in order to add the current directory to the dynamic linker search path.])
18   fi
19 ])
20
21 #
22 # Determine if the system can handle the -R option being passed to the linker.
23 #
24 # This macro is specific to LLVM.
25 #
26 AC_DEFUN([AC_LINK_EXPORT_DYNAMIC],
27 [AC_CACHE_CHECK([for compiler -Wl,-export-dynamic option],
28                 [llvm_cv_link_use_export_dynamic],
29 [ AC_LANG_PUSH([C])
30   oldcflags="$CFLAGS"
31   CFLAGS="$CFLAGS -Wl,-export-dynamic"
32   AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],
33     [llvm_cv_link_use_export_dynamic=yes],[llvm_cv_link_use_export_dynamic=no])
34   CFLAGS="$oldcflags"
35   AC_LANG_POP([C])
36 ])
37 if test "$llvm_cv_link_use_export_dynamic" = yes ; then
38   AC_DEFINE([HAVE_LINK_EXPORT_DYNAMIC],[1],[Define if you can use -Wl,-export-dynamic.])
39   fi
40 ])
41
42 #
43 # Determine if the system can handle the --version-script option being
44 # passed to the linker.
45 #
46 # This macro is specific to LLVM.
47 #
48 AC_DEFUN([AC_LINK_VERSION_SCRIPT],
49 [AC_CACHE_CHECK([for compiler -Wl,--version-script option],
50                 [llvm_cv_link_use_version_script],
51 [ AC_LANG_PUSH([C])
52   oldcflags="$CFLAGS"
53
54   # The following code is from the autoconf manual,
55   # "11.13: Limitations of Usual Tools".
56   # Create a temporary directory $tmp in $TMPDIR (default /tmp).
57   # Use mktemp if possible; otherwise fall back on mkdir,
58   # with $RANDOM to make collisions less likely.
59   : ${TMPDIR=/tmp}
60   {
61     tmp=`
62       (umask 077 && mktemp -d "$TMPDIR/fooXXXXXX") 2>/dev/null
63     ` &&
64     test -n "$tmp" && test -d "$tmp"
65   } || {
66     tmp=$TMPDIR/foo$$-$RANDOM
67     (umask 077 && mkdir "$tmp")
68   } || exit $?
69
70   echo "{" > "$tmp/export.map"
71   echo "  global: main;" >> "$tmp/export.map"
72   echo "  local: *;" >> "$tmp/export.map"
73   echo "};" >> "$tmp/export.map"
74
75   CFLAGS="$CFLAGS -Wl,--version-script=$tmp/export.map"
76   AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],
77     [llvm_cv_link_use_version_script=yes],[llvm_cv_link_version_script=no])
78   rm "$tmp/export.map"
79   rmdir "$tmp"
80   CFLAGS="$oldcflags"
81   AC_LANG_POP([C])
82 ])
83 if test "$llvm_cv_link_use_version_script" = yes ; then
84   AC_SUBST(HAVE_LINK_VERSION_SCRIPT,1)
85   fi
86 ])
87