Darwin: Handle linker '-demangle' option.
Most of the Darwin linkers in use support this option which we will now pass by default (matching the Xcode clang impl.)> Signed-off-by: Iain Sandoe <iain@sandoe.co.uk> gcc/ChangeLog: * config.in: Regenerate. * config/darwin.h (DARWIN_LD_DEMANGLE): New. (LINK_COMMAND_SPEC_A): Add demangle handling. * configure: Regenerate. * configure.ac: Detect linker support for '-demangle'.
This commit is contained in:
parent
e35d297fc9
commit
fc92f5811e
4 changed files with 48 additions and 1 deletions
|
@ -2178,6 +2178,12 @@
|
|||
#endif
|
||||
|
||||
|
||||
/* Define to 1 if ld64 supports '-demangle'. */
|
||||
#ifndef USED_FOR_TARGET
|
||||
#undef LD64_HAS_DEMANGLE
|
||||
#endif
|
||||
|
||||
|
||||
/* Define to 1 if ld64 supports '-export_dynamic'. */
|
||||
#ifndef USED_FOR_TARGET
|
||||
#undef LD64_HAS_EXPORT_DYNAMIC
|
||||
|
@ -2239,7 +2245,8 @@
|
|||
#endif
|
||||
|
||||
|
||||
/* Define to the sub-directory where libtool stores uninstalled libraries. */
|
||||
/* Define to the sub-directory in which libtool stores uninstalled libraries.
|
||||
*/
|
||||
#ifndef USED_FOR_TARGET
|
||||
#undef LT_OBJDIR
|
||||
#endif
|
||||
|
|
|
@ -270,6 +270,12 @@ extern GTY(()) int darwin_ms_struct;
|
|||
"%<y*", \
|
||||
"%<Mach "
|
||||
|
||||
#if LD64_HAS_DEMANGLE
|
||||
#define DARWIN_LD_DEMANGLE " -demangle "
|
||||
#else
|
||||
#define DARWIN_LD_DEMANGLE ""
|
||||
#endif
|
||||
|
||||
#if LD64_HAS_EXPORT_DYNAMIC
|
||||
#define DARWIN_RDYNAMIC "%{rdynamic:-export_dynamic}"
|
||||
#else
|
||||
|
@ -356,6 +362,7 @@ extern GTY(()) int darwin_ms_struct;
|
|||
#define LINK_COMMAND_SPEC_A \
|
||||
"%{!c:%{!E:%{!S:%{!M:%{!MM:%{!fsyntax-only:%{!fdump=*: \
|
||||
%(linker)" \
|
||||
DARWIN_LD_DEMANGLE \
|
||||
LINK_PLUGIN_SPEC \
|
||||
"%{flto*:%<fcompare-debug*} \
|
||||
%{flto} %{fno-lto} %{flto=*} \
|
||||
|
|
19
gcc/configure
vendored
19
gcc/configure
vendored
|
@ -30478,6 +30478,7 @@ if test x"$ld64_flag" = x"yes"; then
|
|||
# Set defaults for possibly untestable items.
|
||||
gcc_cv_ld64_export_dynamic=0
|
||||
gcc_cv_ld64_platform_version=0
|
||||
gcc_cv_ld64_demangle=0
|
||||
|
||||
if test "$build" = "$host"; then
|
||||
darwin_try_test=1
|
||||
|
@ -30501,6 +30502,9 @@ $as_echo_n "checking ld64 specified version... " >&6; }
|
|||
gcc_cv_ld64_major=`echo "$gcc_cv_ld64_version" | sed -e 's/\..*//'`
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_ld64_major" >&5
|
||||
$as_echo "$gcc_cv_ld64_major" >&6; }
|
||||
if test "$gcc_cv_ld64_major" -ge 97; then
|
||||
gcc_cv_ld64_demangle=1
|
||||
fi
|
||||
if test "$gcc_cv_ld64_major" -ge 236; then
|
||||
gcc_cv_ld64_export_dynamic=1
|
||||
fi
|
||||
|
@ -30517,6 +30521,15 @@ $as_echo_n "checking linker version... " >&6; }
|
|||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_ld64_version" >&5
|
||||
$as_echo "$gcc_cv_ld64_version" >&6; }
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking linker for -demangle support" >&5
|
||||
$as_echo_n "checking linker for -demangle support... " >&6; }
|
||||
gcc_cv_ld64_demangle=1
|
||||
if $gcc_cv_ld -demangle < /dev/null 2>&1 | grep 'unknown option' > /dev/null; then
|
||||
gcc_cv_ld64_demangle=0
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_ld64_demangle" >&5
|
||||
$as_echo "$gcc_cv_ld64_demangle" >&6; }
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking linker for -export_dynamic support" >&5
|
||||
$as_echo_n "checking linker for -export_dynamic support... " >&6; }
|
||||
gcc_cv_ld64_export_dynamic=1
|
||||
|
@ -30545,6 +30558,12 @@ _ACEOF
|
|||
fi
|
||||
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define LD64_HAS_DEMANGLE $gcc_cv_ld64_demangle
|
||||
_ACEOF
|
||||
|
||||
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define LD64_HAS_EXPORT_DYNAMIC $gcc_cv_ld64_export_dynamic
|
||||
_ACEOF
|
||||
|
|
|
@ -6211,6 +6211,7 @@ if test x"$ld64_flag" = x"yes"; then
|
|||
# Set defaults for possibly untestable items.
|
||||
gcc_cv_ld64_export_dynamic=0
|
||||
gcc_cv_ld64_platform_version=0
|
||||
gcc_cv_ld64_demangle=0
|
||||
|
||||
if test "$build" = "$host"; then
|
||||
darwin_try_test=1
|
||||
|
@ -6232,6 +6233,9 @@ if test x"$ld64_flag" = x"yes"; then
|
|||
AC_MSG_CHECKING(ld64 specified version)
|
||||
gcc_cv_ld64_major=`echo "$gcc_cv_ld64_version" | sed -e 's/\..*//'`
|
||||
AC_MSG_RESULT($gcc_cv_ld64_major)
|
||||
if test "$gcc_cv_ld64_major" -ge 97; then
|
||||
gcc_cv_ld64_demangle=1
|
||||
fi
|
||||
if test "$gcc_cv_ld64_major" -ge 236; then
|
||||
gcc_cv_ld64_export_dynamic=1
|
||||
fi
|
||||
|
@ -6246,6 +6250,13 @@ if test x"$ld64_flag" = x"yes"; then
|
|||
fi
|
||||
AC_MSG_RESULT($gcc_cv_ld64_version)
|
||||
|
||||
AC_MSG_CHECKING(linker for -demangle support)
|
||||
gcc_cv_ld64_demangle=1
|
||||
if $gcc_cv_ld -demangle < /dev/null 2>&1 | grep 'unknown option' > /dev/null; then
|
||||
gcc_cv_ld64_demangle=0
|
||||
fi
|
||||
AC_MSG_RESULT($gcc_cv_ld64_demangle)
|
||||
|
||||
AC_MSG_CHECKING(linker for -export_dynamic support)
|
||||
gcc_cv_ld64_export_dynamic=1
|
||||
if $gcc_cv_ld -export_dynamic < /dev/null 2>&1 | grep 'unknown option' > /dev/null; then
|
||||
|
@ -6266,6 +6277,9 @@ if test x"$ld64_flag" = x"yes"; then
|
|||
[Define to ld64 version.])
|
||||
fi
|
||||
|
||||
AC_DEFINE_UNQUOTED(LD64_HAS_DEMANGLE, $gcc_cv_ld64_demangle,
|
||||
[Define to 1 if ld64 supports '-demangle'.])
|
||||
|
||||
AC_DEFINE_UNQUOTED(LD64_HAS_EXPORT_DYNAMIC, $gcc_cv_ld64_export_dynamic,
|
||||
[Define to 1 if ld64 supports '-export_dynamic'.])
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue