summaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2022-10-03 09:42:20 +0200
committerMartin Liska <mliska@suse.cz>2022-10-11 14:15:04 +0200
commitb0c295e1b8d0ec8af33c502a6b00b260d0425c04 (patch)
tree74b7af58b3c3d0d3613e26b3bf0e5a64150fa643 /ld
parent857bddbe737bc963bd9e5a3b24743a9bba5d2d7b (diff)
downloadbinutils-gdb-b0c295e1b8d0ec8af33c502a6b00b260d0425c04.tar.gz
add --enable-default-compressed-debug-sections-algorithm configure option
ChangeLog: * configure.ac: Add --enable-default-compressed-debug-sections-algorithm. * configure: Regenerate. gas/ChangeLog: * NEWS: Document the new option. * as.c (flag_compress_debug): Set default algorithm based on the configure option. * configure.ac: Add --enable-default-compressed-debug-sections-algorithm. * configure: Regenerate. * config.in: Likewise. ld/ChangeLog: * NEWS: Document the new option. * configure.ac: Add --enable-default-compressed-debug-sections-algorithm. * configure: Regenerate. * config.in: Likewise. * ldmain.c: Set default algorithm based on the configure option.
Diffstat (limited to 'ld')
-rw-r--r--ld/NEWS3
-rw-r--r--ld/config.in3
-rwxr-xr-xld/configure23
-rw-r--r--ld/configure.ac12
-rw-r--r--ld/ldmain.c2
5 files changed, 40 insertions, 3 deletions
diff --git a/ld/NEWS b/ld/NEWS
index dfe2690d9f2..d7ceb0c68b6 100644
--- a/ld/NEWS
+++ b/ld/NEWS
@@ -2,6 +2,9 @@
* ld now supports zstd compressed debug sections. The new option
--compress-debug-sections=zstd compresses debug sections with zstd.
+* Add --enable-default-compressed-debug-sections-algorithm={zlib,zstd}
+ that selects the default compression algorithm
+ for --enable-compressed-debug-sections.
Changes in 2.39:
diff --git a/ld/config.in b/ld/config.in
index 3916740eee4..ad0dc6a106c 100644
--- a/ld/config.in
+++ b/ld/config.in
@@ -7,6 +7,9 @@
#endif
#define __CONFIG_H__ 1
+/* Default compression algorithm for --enable-compressed-debug-sections. */
+#undef DEFAULT_COMPRESSED_DEBUG_ALGORITHM
+
/* Define to 1 if you want to emit gnu hash in the ELF linker by default. */
#undef DEFAULT_EMIT_GNU_HASH
diff --git a/ld/configure b/ld/configure
index 9dd3ed5f1e7..7906f52aadf 100755
--- a/ld/configure
+++ b/ld/configure
@@ -841,6 +841,7 @@ with_sysroot
enable_gold
enable_got
enable_compressed_debug_sections
+enable_default_compressed_debug_sections_algorithm
enable_new_dtags
enable_relro
enable_textrel_check
@@ -1524,6 +1525,9 @@ Optional Features:
multigot)
--enable-compressed-debug-sections={all,ld,none}
compress debug sections by default]
+ --enable-default-compressed-debug-sections-algorithm={zlib,zstd}
+ Default compression algorithm for
+ --enable-compressed-debug-sections.
--enable-new-dtags set DT_RUNPATH instead of DT_RPATH by default]
--enable-relro enable -z relro in ELF linker by default
--enable-textrel-check=[yes|no|warning|error]
@@ -11620,7 +11624,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11623 "configure"
+#line 11627 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11726,7 +11730,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11729 "configure"
+#line 11733 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -15544,6 +15548,15 @@ if test "${enable_compressed_debug_sections+set}" = set; then :
esac
fi
+# Select default compression algorithm.
+ac_default_compressed_debug_sections_algorithm=COMPRESS_DEBUG_GABI_ZLIB
+# Check whether --enable-default_compressed_debug_sections_algorithm was given.
+if test "${enable_default_compressed_debug_sections_algorithm+set}" = set; then :
+ enableval=$enable_default_compressed_debug_sections_algorithm; case "${enableval}" in
+ zstd) ac_default_compressed_debug_sections_algorithm=COMPRESS_DEBUG_ZSTD ;;
+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.
@@ -17340,6 +17353,12 @@ $as_echo "#define DEFAULT_FLAG_COMPRESS_DEBUG 1" >>confdefs.h
fi
+
+cat >>confdefs.h <<_ACEOF
+#define DEFAULT_COMPRESSED_DEBUG_ALGORITHM $ac_default_compressed_debug_sections_algorithm
+_ACEOF
+
+
if test "${ac_default_new_dtags}" = unset; then
ac_default_new_dtags=0
fi
diff --git a/ld/configure.ac b/ld/configure.ac
index f1b2f9897f8..6123ea78611 100644
--- a/ld/configure.ac
+++ b/ld/configure.ac
@@ -163,6 +163,15 @@ AC_ARG_ENABLE(compressed_debug_sections,
,no, | ,none,) ac_default_compressed_debug_sections=no ;;
esac])dnl
+# Select default compression algorithm.
+ac_default_compressed_debug_sections_algorithm=COMPRESS_DEBUG_GABI_ZLIB
+AC_ARG_ENABLE(default_compressed_debug_sections_algorithm,
+ AS_HELP_STRING([--enable-default-compressed-debug-sections-algorithm={zlib,zstd}],
+ [Default compression algorithm for --enable-compressed-debug-sections.]),
+[case "${enableval}" in
+ zstd) ac_default_compressed_debug_sections_algorithm=COMPRESS_DEBUG_ZSTD ;;
+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.
@@ -510,6 +519,9 @@ 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
+AC_DEFINE_UNQUOTED(DEFAULT_COMPRESSED_DEBUG_ALGORITHM, $ac_default_compressed_debug_sections_algorithm,
+ [Default compression algorithm for --enable-compressed-debug-sections.])
+
if test "${ac_default_new_dtags}" = unset; then
ac_default_new_dtags=0
fi
diff --git a/ld/ldmain.c b/ld/ldmain.c
index d63002c994a..10f7a0538aa 100644
--- a/ld/ldmain.c
+++ b/ld/ldmain.c
@@ -352,7 +352,7 @@ main (int argc, char **argv)
link_info.spare_dynamic_tags = 5;
link_info.path_separator = ':';
#ifdef DEFAULT_FLAG_COMPRESS_DEBUG
- link_info.compress_debug = COMPRESS_DEBUG_GABI_ZLIB;
+ link_info.compress_debug = DEFAULT_COMPRESSED_DEBUG_ALGORITHM;
#endif
#ifdef DEFAULT_NEW_DTAGS
link_info.new_dtags = DEFAULT_NEW_DTAGS;