mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-27 03:54:41 +08:00
Add configure flag to enable gnu hash style by default.
ld/ * configure.ac: Add --enable-default-hash-style option. * ldmain.c (main): Set link_info.emit_hash to DEFAULT_EMIT_SYSV_HASH. Set link_info.emit_gnu_hash to DEFAULT_EMIT_GNU_HASH. * configure: Regenerate. * config.in: Regenerate. gold/ * configure.ac: Add --enable-default-hash-style option. * options.h (hash_style): Use DEFAULT_HASH_STYLE as default value. * configure: Regenerate. * config.in: Regenerate.
This commit is contained in:
parent
8f5e83fb73
commit
2760f24c49
@ -1,3 +1,11 @@
|
||||
2017-08-08 Romain Geissler <romain.geissler@gmail.com>
|
||||
Alan Modra <amodra@gmail.com>
|
||||
|
||||
* configure.ac: Add --enable-default-hash-style option.
|
||||
* options.h (hash_style): Use DEFAULT_HASH_STYLE as default value.
|
||||
* configure: Regenerate.
|
||||
* config.in: Regenerate.
|
||||
|
||||
2017-08-03 James Clarke <jrtc27@jrtc27.com>
|
||||
|
||||
* options.h (General_options): Set a non-NULL second help string
|
||||
|
@ -10,6 +10,9 @@
|
||||
/* Define if building universal (internal helper macro) */
|
||||
#undef AC_APPLE_UNIVERSAL_BUILD
|
||||
|
||||
/* Set the default --hash-style value */
|
||||
#undef DEFAULT_HASH_STYLE
|
||||
|
||||
/* Define to 1 if you want to enable -z relro in ELF linker by default. */
|
||||
#undef DEFAULT_LD_Z_RELRO
|
||||
|
||||
|
27
gold/configure
vendored
27
gold/configure
vendored
@ -797,6 +797,7 @@ enable_threads
|
||||
enable_plugins
|
||||
enable_relro
|
||||
enable_targets
|
||||
enable_default_hash_style
|
||||
with_lib_path
|
||||
enable_dependency_tracking
|
||||
enable_nls
|
||||
@ -1447,6 +1448,8 @@ Optional Features:
|
||||
--enable-plugins linker plugins
|
||||
--enable-relro enable -z relro in ELF linker by default
|
||||
--enable-targets alternative target configurations
|
||||
--enable-default-hash-style={sysv,gnu,both}
|
||||
use this default hash style
|
||||
--disable-dependency-tracking speeds up one-time build
|
||||
--enable-dependency-tracking do not reject slow dependency extractors
|
||||
--disable-nls do not use Native Language Support
|
||||
@ -3410,6 +3413,30 @@ if test -n "$enable_targets"; then
|
||||
done
|
||||
fi
|
||||
|
||||
# Decide which "--hash-style" to use by default
|
||||
# Provide a configure time option to override our default.
|
||||
# Check whether --enable-default-hash-style was given.
|
||||
if test "${enable_default_hash_style+set}" = set; then :
|
||||
enableval=$enable_default_hash_style; case "${enable_default_hash_style}" in
|
||||
sysv | gnu | both) ;;
|
||||
*) as_fn_error "bad value ${enable_default_hash_style} for enable-default-hash-style option" "$LINENO" 5 ;;
|
||||
esac
|
||||
else
|
||||
case "${target}" in
|
||||
# Enable gnu hash only on GNU targets, but not mips
|
||||
mips*-*-*) enable_default_hash_style=sysv ;;
|
||||
*-*-gnu* | *-*-linux* | *-*-nacl*) enable_default_hash_style=both ;;
|
||||
*) enable_default_hash_style=sysv ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define DEFAULT_HASH_STYLE "${enable_default_hash_style}"
|
||||
_ACEOF
|
||||
|
||||
|
||||
# See which specific instantiations we need.
|
||||
targetobjs=
|
||||
all_targets=
|
||||
|
@ -161,6 +161,26 @@ if test -n "$enable_targets"; then
|
||||
done
|
||||
fi
|
||||
|
||||
# Decide which "--hash-style" to use by default
|
||||
# Provide a configure time option to override our default.
|
||||
AC_ARG_ENABLE([default-hash-style],
|
||||
AS_HELP_STRING([--enable-default-hash-style={sysv,gnu,both}],
|
||||
[use this default hash style]),
|
||||
[case "${enable_default_hash_style}" in
|
||||
sysv | gnu | both) ;;
|
||||
*) AC_MSG_ERROR([bad value ${enable_default_hash_style} for enable-default-hash-style option]) ;;
|
||||
esac],
|
||||
[case "${target}" in
|
||||
# Enable gnu hash only on GNU targets, but not mips
|
||||
mips*-*-*) enable_default_hash_style=sysv ;;
|
||||
*-*-gnu* | *-*-linux* | *-*-nacl*) enable_default_hash_style=both ;;
|
||||
*) enable_default_hash_style=sysv ;;
|
||||
esac])
|
||||
|
||||
AC_DEFINE_UNQUOTED([DEFAULT_HASH_STYLE],
|
||||
["${enable_default_hash_style}"],
|
||||
[Set the default --hash-style value])
|
||||
|
||||
# See which specific instantiations we need.
|
||||
targetobjs=
|
||||
all_targets=
|
||||
|
@ -925,7 +925,7 @@ class General_options
|
||||
N_("Min fraction of empty buckets in dynamic hash"),
|
||||
N_("FRACTION"));
|
||||
|
||||
DEFINE_enum(hash_style, options::TWO_DASHES, '\0', "sysv",
|
||||
DEFINE_enum(hash_style, options::TWO_DASHES, '\0', DEFAULT_HASH_STYLE,
|
||||
N_("Dynamic hash style"), N_("[sysv,gnu,both]"),
|
||||
{"sysv", "gnu", "both"});
|
||||
|
||||
|
@ -1,3 +1,12 @@
|
||||
2017-08-08 Romain Geissler <romain.geissler@gmail.com>
|
||||
Alan Modra <amodra@gmail.com>
|
||||
|
||||
* configure.ac: Add --enable-default-hash-style option.
|
||||
* ldmain.c (main): Set link_info.emit_hash to DEFAULT_EMIT_SYSV_HASH.
|
||||
Set link_info.emit_gnu_hash to DEFAULT_EMIT_GNU_HASH.
|
||||
* configure: Regenerate.
|
||||
* config.in: Regenerate.
|
||||
|
||||
2017-08-08 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* testsuite/ld-aarch64/ifunc-1-local.d: Run ld with --hash-style=sysv.
|
||||
|
@ -7,6 +7,12 @@
|
||||
#endif
|
||||
#define __CONFIG_H__ 1
|
||||
|
||||
/* Define to 1 if you want to emit gnu hash in the ELF linker by default. */
|
||||
#undef DEFAULT_EMIT_GNU_HASH
|
||||
|
||||
/* Define to 1 if you want to emit sysv hash in the ELF linker by default. */
|
||||
#undef DEFAULT_EMIT_SYSV_HASH
|
||||
|
||||
/* Define if you want compressed debug sections by default. */
|
||||
#undef DEFAULT_FLAG_COMPRESS_DEBUG
|
||||
|
||||
|
47
ld/configure
vendored
47
ld/configure
vendored
@ -790,6 +790,7 @@ enable_got
|
||||
enable_compressed_debug_sections
|
||||
enable_new_dtags
|
||||
enable_relro
|
||||
enable_default_hash_style
|
||||
enable_werror
|
||||
enable_build_warnings
|
||||
enable_nls
|
||||
@ -1450,6 +1451,8 @@ Optional Features:
|
||||
compress debug sections by default]
|
||||
--enable-new-dtags set DT_RUNPATH instead of DT_RPATH by default]
|
||||
--enable-relro enable -z relro in ELF linker by default
|
||||
--enable-default-hash-style={sysv,gnu,both}
|
||||
use this default hash style
|
||||
--enable-werror treat compile warnings as errors
|
||||
--enable-build-warnings enable build-time compiler warnings
|
||||
--disable-nls do not use Native Language Support
|
||||
@ -11722,7 +11725,7 @@ else
|
||||
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
||||
lt_status=$lt_dlunknown
|
||||
cat > conftest.$ac_ext <<_LT_EOF
|
||||
#line 11725 "configure"
|
||||
#line 11728 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
#if HAVE_DLFCN_H
|
||||
@ -11828,7 +11831,7 @@ else
|
||||
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
||||
lt_status=$lt_dlunknown
|
||||
cat > conftest.$ac_ext <<_LT_EOF
|
||||
#line 11831 "configure"
|
||||
#line 11834 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
#if HAVE_DLFCN_H
|
||||
@ -15564,6 +15567,34 @@ if test "${enable_relro+set}" = set; then :
|
||||
esac
|
||||
fi
|
||||
|
||||
# Decide which "--hash-style" to use by default
|
||||
# Provide a configure time option to override our default.
|
||||
# Check whether --enable-default-hash-style was given.
|
||||
if test "${enable_default_hash_style+set}" = set; then :
|
||||
enableval=$enable_default_hash_style; case "${enable_default_hash_style}" in
|
||||
sysv | gnu | both) ;;
|
||||
*) as_fn_error "bad value ${enable_default_hash_style} for enable-default-hash-style option" "$LINENO" 5 ;;
|
||||
esac
|
||||
else
|
||||
case "${target}" in
|
||||
# Enable gnu hash only on GNU targets, but not mips
|
||||
mips*-*-*) enable_default_hash_style=sysv ;;
|
||||
*-*-gnu* | *-*-linux* | *-*-nacl*) enable_default_hash_style=both ;;
|
||||
*) enable_default_hash_style=sysv ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
|
||||
case "${enable_default_hash_style}" in
|
||||
sysv | both) ac_default_emit_sysv_hash=1 ;;
|
||||
*) ac_default_emit_sysv_hash=0 ;;
|
||||
esac
|
||||
|
||||
case "${enable_default_hash_style}" in
|
||||
gnu | both) ac_default_emit_gnu_hash=1 ;;
|
||||
*) ac_default_emit_gnu_hash=0 ;;
|
||||
esac
|
||||
|
||||
|
||||
# Set the 'development' global.
|
||||
. $srcdir/../bfd/development.sh
|
||||
@ -17228,6 +17259,18 @@ _ACEOF
|
||||
|
||||
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define DEFAULT_EMIT_SYSV_HASH $ac_default_emit_sysv_hash
|
||||
_ACEOF
|
||||
|
||||
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define DEFAULT_EMIT_GNU_HASH $ac_default_emit_gnu_hash
|
||||
_ACEOF
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -177,6 +177,32 @@ AC_ARG_ENABLE(relro,
|
||||
no) ac_default_ld_z_relro=0 ;;
|
||||
esac])dnl
|
||||
|
||||
# Decide which "--hash-style" to use by default
|
||||
# Provide a configure time option to override our default.
|
||||
AC_ARG_ENABLE([default-hash-style],
|
||||
AS_HELP_STRING([--enable-default-hash-style={sysv,gnu,both}],
|
||||
[use this default hash style]),
|
||||
[case "${enable_default_hash_style}" in
|
||||
sysv | gnu | both) ;;
|
||||
*) AC_MSG_ERROR([bad value ${enable_default_hash_style} for enable-default-hash-style option]) ;;
|
||||
esac],
|
||||
[case "${target}" in
|
||||
# Enable gnu hash only on GNU targets, but not mips
|
||||
mips*-*-*) enable_default_hash_style=sysv ;;
|
||||
*-*-gnu* | *-*-linux* | *-*-nacl*) enable_default_hash_style=both ;;
|
||||
*) enable_default_hash_style=sysv ;;
|
||||
esac])
|
||||
|
||||
case "${enable_default_hash_style}" in
|
||||
sysv | both) ac_default_emit_sysv_hash=1 ;;
|
||||
*) ac_default_emit_sysv_hash=0 ;;
|
||||
esac
|
||||
|
||||
case "${enable_default_hash_style}" in
|
||||
gnu | both) ac_default_emit_gnu_hash=1 ;;
|
||||
*) ac_default_emit_gnu_hash=0 ;;
|
||||
esac
|
||||
|
||||
AM_BINUTILS_WARNINGS
|
||||
|
||||
AM_LC_MESSAGES
|
||||
@ -408,6 +434,14 @@ AC_DEFINE_UNQUOTED(DEFAULT_LD_Z_RELRO,
|
||||
$ac_default_ld_z_relro,
|
||||
[Define to 1 if you want to enable -z relro in ELF linker by default.])
|
||||
|
||||
AC_DEFINE_UNQUOTED([DEFAULT_EMIT_SYSV_HASH],
|
||||
[$ac_default_emit_sysv_hash],
|
||||
[Define to 1 if you want to emit sysv hash in the ELF linker by default.])
|
||||
|
||||
AC_DEFINE_UNQUOTED([DEFAULT_EMIT_GNU_HASH],
|
||||
[$ac_default_emit_gnu_hash],
|
||||
[Define to 1 if you want to emit gnu hash in the ELF linker by default.])
|
||||
|
||||
AC_SUBST(elf_list_options)
|
||||
AC_SUBST(elf_shlib_list_options)
|
||||
AC_SUBST(elf_plt_unwind_list_options)
|
||||
|
@ -273,7 +273,8 @@ main (int argc, char **argv)
|
||||
link_info.keep_memory = TRUE;
|
||||
link_info.combreloc = TRUE;
|
||||
link_info.strip_discarded = TRUE;
|
||||
link_info.emit_hash = TRUE;
|
||||
link_info.emit_hash = DEFAULT_EMIT_SYSV_HASH;
|
||||
link_info.emit_gnu_hash = DEFAULT_EMIT_GNU_HASH;
|
||||
link_info.callbacks = &link_callbacks;
|
||||
link_info.input_bfds_tail = &link_info.input_bfds;
|
||||
/* SVR4 linkers seem to set DT_INIT and DT_FINI based on magic _init
|
||||
|
Loading…
Reference in New Issue
Block a user