1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2025-01-31 20:51:52 +01:00

Autodetect the availability of -export-dynamic in the linker.

llvm-svn: 66156
This commit is contained in:
Nick Lewycky 2009-03-05 08:20:21 +00:00
parent 744e33c12b
commit ff20b634bf
4 changed files with 62 additions and 25 deletions

View File

@ -203,6 +203,9 @@ OBJ_ROOT := .
# What to pass as rpath flag to g++ # What to pass as rpath flag to g++
RPATH := @RPATH@ RPATH := @RPATH@
# What to pass as -rdynamic flag to g++
RDYNAMIC := @RDYNAMIC@
# These are options that can either be enabled here, or can be enabled on the # These are options that can either be enabled here, or can be enabled on the
# make command line (ie, make ENABLE_PROFILING=1): # make command line (ie, make ENABLE_PROFILING=1):

View File

@ -636,9 +636,12 @@ AC_PATH_PROGS(OCAMLDEP, [ocamldep])
AC_PATH_PROGS(OCAMLDOC, [ocamldoc]) AC_PATH_PROGS(OCAMLDOC, [ocamldoc])
AC_PATH_PROGS(GAS, [gas as]) AC_PATH_PROGS(GAS, [gas as])
dnl Determine if the linker supports the -R option. dnl Determine whether the linker supports the -R option.
AC_LINK_USE_R AC_LINK_USE_R
dnl Determine whether the linker supports the -export-dynamic option.
AC_LINK_EXPORT_DYNAMIC
dnl Check for libtool and the library that has dlopen function (which must come dnl Check for libtool and the library that has dlopen function (which must come
dnl before the AC_PROG_LIBTOOL check in order to enable dlopening libraries with dnl before the AC_PROG_LIBTOOL check in order to enable dlopening libraries with
dnl libtool). dnl libtool).
@ -1013,16 +1016,25 @@ if test "$binding_prereqs_failed" = 1 ; then
AC_MSG_ERROR([Prequisites for bindings not satisfied. Fix them or use configure --disable-bindings.]) AC_MSG_ERROR([Prequisites for bindings not satisfied. Fix them or use configure --disable-bindings.])
fi fi
dnl Determine if the compiler supports -fvisibility-inlines-hidden. dnl Determine whether the compiler supports -fvisibility-inlines-hidden.
AC_CXX_USE_VISIBILITY_INLINES_HIDDEN AC_CXX_USE_VISIBILITY_INLINES_HIDDEN
dnl Determine linker rpath flag dnl Determine linker rpath flag
case $llvm_cv_os_type in if test "$llvm_cv_link_use_r" = "yes" ; then
SunOS) RPATH="-Wl,-R" ;; RPATH="-Wl,-R"
*) RPATH="-Wl,-rpath" ;; else
esac RPATH="-Wl,-rpath"
fi
AC_SUBST(RPATH) AC_SUBST(RPATH)
dnl Determine linker rdynamic flag
if test "$llvm_cv_link_use_export_dynamic" = "yes" ; then
RDYNAMIC="-Wl,-export-dynamic"
else
RDYNAMIC=""
fi
AC_SUBST(RDYNAMIC)
dnl===-----------------------------------------------------------------------=== dnl===-----------------------------------------------------------------------===
dnl=== dnl===
dnl=== SECTION 10: Specify the output files and generate it dnl=== SECTION 10: Specify the output files and generate it

View File

@ -0,0 +1,41 @@
#
# Determine if the system can handle the -R option being passed to the linker.
#
# This macro is specific to LLVM.
#
AC_DEFUN([AC_LINK_USE_R],
[AC_CACHE_CHECK([for compiler -Wl,-R<path> option],[llvm_cv_link_use_r],
[ AC_LANG_PUSH([C])
oldcflags="$CFLAGS"
CFLAGS="$CFLAGS -Wl,-R."
AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[int main() { return 0; }]])],
[llvm_cv_link_use_r=yes],[llvm_cv_link_use_r=no])
CFLAGS="$oldcflags"
AC_LANG_POP([C])
])
if test "$llvm_cv_link_use_r" = yes ; then
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.])
fi
])
#
# Determine if the system can handle the -R option being passed to the linker.
#
# This macro is specific to LLVM.
#
AC_DEFUN([AC_LINK_EXPORT_DYNAMIC],
[AC_CACHE_CHECK([for compiler -Wl,-export-dynamic option],
[llvm_cv_link_use_export_dynamic],
[ AC_LANG_PUSH([C])
oldcflags="$CFLAGS"
CFLAGS="$CFLAGS -Wl,-export-dynamic"
AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[int main() { return 0; }]])],
[llvm_cv_link_use_export_dynamic=yes],[llvm_cv_link_use_export_dynamic=no])
CFLAGS="$oldcflags"
AC_LANG_POP([C])
])
if test "$llvm_cv_link_use_export_dynamic" = yes ; then
AC_DEFINE([HAVE_LINK_EXPORT_DYNAMIC],[1],[Define if you can use -Wl,-export-dynamic.])
fi
])

View File

@ -1,19 +0,0 @@
#
# Determine if the system can handle the -R option being passed to the linker.
#
# This macro is specific to LLVM.
#
AC_DEFUN([AC_LINK_USE_R],
[AC_CACHE_CHECK([for compiler -Wl,-R<path> option],[llvm_cv_link_use_r],
[ AC_LANG_PUSH([C])
oldcflags="$CFLAGS"
CFLAGS="$CFLAGS -Wl,-R."
AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[int main() { return 0; }]])],
[llvm_cv_link_use_r=yes],[llvm_cv_link_use_r=no])
CFLAGS="$oldcflags"
AC_LANG_POP([C])
])
if test "$llvm_cv_link_use_r" = yes ; then
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.])
fi
])