This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[PATCH] Introduce --enable-new-dtags configure option.
- From: Slava Barinov <v dot barinov at samsung dot com>
- To: binutils at sourceware dot org
- Cc: Slava Barinov <v dot barinov at samsung dot com>
- Date: Thu, 25 May 2017 13:34:24 +0300
- Subject: [PATCH] Introduce --enable-new-dtags configure option.
- Authentication-results: sourceware.org; auth=none
- Cms-type: 201P
- References: <CGME20170525103451eucas1p21bc68d274a1c3b1424483df18ab98432@eucas1p2.samsung.com>
This option switches on ld.bfd --enable-new-dtags by default.
ld/ChangeLog:
2017-05-25 Slava Barinov <v.barinov@samsung.com>
* configure.ac: Add --enable-new-dtags option.
* ldmain.c: Set link_info.new_dtags to 1 if when --enable-new-dtags is
switched on.
* configure: Regenerate.
* config.in: Regenerate.
---
ld/ChangeLog | 8 ++++++++
ld/config.in | 4 ++++
ld/configure | 26 ++++++++++++++++++++++++--
ld/configure.ac | 18 ++++++++++++++++++
ld/ldmain.c | 3 +++
5 files changed, 57 insertions(+), 2 deletions(-)
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 3bfd4ce403..f148fa4404 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,11 @@
+2017-05-25 Slava Barinov <v.barinov@samsung.com>
+
+ * configure.ac: Add --enable-new-dtags option.
+ * ldmain.c: Set link_info.new_dtags to 1 if when --enable-new-dtags is
+ switched on.
+ * configure: Regenerate.
+ * config.in: Regenerate.
+
2017-05-22 Jiong Wang <jiong.wang@arm.com>
* configure.tgt: Set "targ_emul" to "aarch64linux32b" for
diff --git a/ld/config.in b/ld/config.in
index 2c6d698b6c..5d91380ec2 100644
--- a/ld/config.in
+++ b/ld/config.in
@@ -13,6 +13,10 @@
/* Define to 1 if you want to enable -z relro in ELF linker by default. */
#undef DEFAULT_LD_Z_RELRO
+/* Define to 1 if you want to set DT_RUNPATH instead of DT_RPATH by default.
+ */
+#undef DEFAULT_NEW_DTAGS
+
/* Define to 1 if translation of program messages to the user's native
language is requested. */
#undef ENABLE_NLS
diff --git a/ld/configure b/ld/configure
index dd94301ad0..919fbc2005 100755
--- a/ld/configure
+++ b/ld/configure
@@ -788,6 +788,7 @@ with_sysroot
enable_gold
enable_got
enable_compressed_debug_sections
+enable_new_dtags
enable_relro
enable_werror
enable_build_warnings
@@ -1447,6 +1448,7 @@ Optional Features:
multigot)
--enable-compressed-debug-sections={all,ld,none}
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-werror treat compile warnings as errors
--enable-build-warnings enable build-time compiler warnings
@@ -11720,7 +11722,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11723 "configure"
+#line 11725 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11826,7 +11828,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11829 "configure"
+#line 11831 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -15540,6 +15542,17 @@ if test "${enable_compressed_debug_sections+set}" = set; then :
esac
fi
+# Decide setting DT_RUNPATH instead of DT_RPATH by default
+ac_default_new_dtags=unset
+# Provide a configure time option to override our default.
+# Check whether --enable-new_dtags was given.
+if test "${enable_new_dtags+set}" = set; then :
+ enableval=$enable_new_dtags; case "${enableval}" in
+ yes) ac_default_new_dtags=1 ;;
+ no) ac_default_new_dtags=0 ;;
+esac
+fi
+
# Decide if -z relro should be enabled in ELF linker by default.
ac_default_ld_z_relro=unset
# Provide a configure time option to override our default.
@@ -17196,6 +17209,15 @@ $as_echo "#define DEFAULT_FLAG_COMPRESS_DEBUG 1" >>confdefs.h
fi
+if test "${ac_default_new_dtags}" = unset; then
+ ac_default_new_dtags=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define DEFAULT_NEW_DTAGS $ac_default_new_dtags
+_ACEOF
+
+
if test "${ac_default_ld_z_relro}" = unset; then
ac_default_ld_z_relro=0
fi
diff --git a/ld/configure.ac b/ld/configure.ac
index f3a7f54814..4e2dc86b8e 100644
--- a/ld/configure.ac
+++ b/ld/configure.ac
@@ -155,6 +155,17 @@ AC_ARG_ENABLE(compressed_debug_sections,
,no, | ,none,) ac_default_compressed_debug_sections=no ;;
esac])dnl
+# Decide setting DT_RUNPATH instead of DT_RPATH by default
+ac_default_new_dtags=unset
+# Provide a configure time option to override our default.
+AC_ARG_ENABLE(new_dtags,
+ AS_HELP_STRING([--enable-new-dtags],
+ [set DT_RUNPATH instead of DT_RPATH by default])],
+[case "${enableval}" in
+ yes) ac_default_new_dtags=1 ;;
+ no) ac_default_new_dtags=0 ;;
+esac])dnl
+
# Decide if -z relro should be enabled in ELF linker by default.
ac_default_ld_z_relro=unset
# Provide a configure time option to override our default.
@@ -383,6 +394,13 @@ if test x$ac_default_compressed_debug_sections = xyes ; then
AC_DEFINE(DEFAULT_FLAG_COMPRESS_DEBUG, 1, [Define if you want compressed debug sections by default.])
fi
+if test "${ac_default_new_dtags}" = unset; then
+ ac_default_new_dtags=0
+fi
+AC_DEFINE_UNQUOTED(DEFAULT_NEW_DTAGS,
+ $ac_default_new_dtags,
+ [Define to 1 if you want to set DT_RUNPATH instead of DT_RPATH by default.])
+
if test "${ac_default_ld_z_relro}" = unset; then
ac_default_ld_z_relro=0
fi
diff --git a/ld/ldmain.c b/ld/ldmain.c
index e049de36d7..045f3231fa 100644
--- a/ld/ldmain.c
+++ b/ld/ldmain.c
@@ -298,6 +298,9 @@ main (int argc, char **argv)
#ifdef DEFAULT_FLAG_COMPRESS_DEBUG
link_info.compress_debug = COMPRESS_DEBUG_GABI_ZLIB;
#endif
+#ifdef DEFAULT_NEW_DTAGS
+ link_info.new_dtags = TRUE;
+#endif
ldfile_add_arch ("");
emulation = get_emulation (argc, argv);
--
2.13.0