[PATCH 2/2] add --enable-default-compressed-debug-sections-algorithm configure option
Martin Liška
mliska@suse.cz
Tue Oct 11 07:14:36 GMT 2022
PING^1
On 10/3/22 09:50, Martin Liška wrote:
> 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.
> ---
> configure | 13 +++++++++++++
> configure.ac | 6 ++++++
> gas/NEWS | 3 +++
> gas/as.c | 2 +-
> gas/config.in | 3 +++
> gas/configure | 23 +++++++++++++++++++++--
> gas/configure.ac | 12 ++++++++++++
> ld/NEWS | 3 +++
> ld/config.in | 3 +++
> ld/configure | 23 +++++++++++++++++++++--
> ld/configure.ac | 12 ++++++++++++
> ld/ldmain.c | 2 +-
> 12 files changed, 99 insertions(+), 6 deletions(-)
>
> diff --git a/configure b/configure
> index f14e0efd675..a430e625c75 100755
> --- a/configure
> +++ b/configure
> @@ -792,6 +792,7 @@ enable_gold
> enable_ld
> enable_gprofng
> enable_compressed_debug_sections
> +enable_default_compressed_debug_sections_algorithm
> enable_year2038
> enable_libquadmath
> enable_libquadmath_support
> @@ -1523,6 +1524,9 @@ Optional Features:
> --enable-compressed-debug-sections={all,gas,gold,ld,none}
> Enable compressed debug sections for gas, gold or ld
> by default
> + --enable-default-compressed-debug-sections-algorithm={zlib,zstd}
> + Default compression algorithm for
> + --enable-compressed-debug-sections.
> --enable-year2038 enable support for timestamps past the year 2038
> --disable-libquadmath do not build libquadmath directory
> --disable-libquadmath-support
> @@ -3119,6 +3123,15 @@ else
> fi
>
>
> +# Select default compression algorithm.
> +# 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;
> +else
> + default_compressed_debug_sections_algorithm=
> +fi
> +
> +
> # Configure extra directories which are host specific
>
> case "${host}" in
> diff --git a/configure.ac b/configure.ac
> index 0152c69292e..9c4c9e13907 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -422,6 +422,12 @@ AC_ARG_ENABLE(compressed_debug_sections,
> fi
> ], [enable_compressed_debug_sections=])
>
> +# Select default compression algorithm.
> +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.])],
> +[], [default_compressed_debug_sections_algorithm=])
> +
> # Configure extra directories which are host specific
>
> case "${host}" in
> diff --git a/gas/NEWS b/gas/NEWS
> index 9a8b726b942..d9043d9d469 100644
> --- a/gas/NEWS
> +++ b/gas/NEWS
> @@ -2,6 +2,9 @@
>
> * gas now supports --compress-debug-sections=zstd to compress
> 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/gas/as.c b/gas/as.c
> index a5c2d2459f7..d42dd5394b5 100644
> --- a/gas/as.c
> +++ b/gas/as.c
> @@ -226,7 +226,7 @@ print_version_id (void)
>
> #ifdef DEFAULT_FLAG_COMPRESS_DEBUG
> enum compressed_debug_section_type flag_compress_debug
> - = COMPRESS_DEBUG_GABI_ZLIB;
> + = DEFAULT_COMPRESSED_DEBUG_ALGORITHM;
> #endif
>
> static void
> diff --git a/gas/config.in b/gas/config.in
> index 0d1668a3eac..232bc350759 100644
> --- a/gas/config.in
> +++ b/gas/config.in
> @@ -22,6 +22,9 @@
> /* Default architecture. */
> #undef DEFAULT_ARCH
>
> +/* Default compression algorithm for --enable-compressed-debug-sections. */
> +#undef DEFAULT_COMPRESSED_DEBUG_ALGORITHM
> +
> /* Default CRIS architecture. */
> #undef DEFAULT_CRIS_ARCH
>
> diff --git a/gas/configure b/gas/configure
> index 02cded59b6a..cae14c066d2 100755
> --- a/gas/configure
> +++ b/gas/configure
> @@ -810,6 +810,7 @@ enable_largefile
> enable_targets
> enable_checking
> enable_compressed_debug_sections
> +enable_default_compressed_debug_sections_algorithm
> enable_x86_relax_relocations
> enable_elf_stt_common
> enable_generate_build_notes
> @@ -1476,6 +1477,9 @@ Optional Features:
> --enable-checking enable run-time checks
> --enable-compressed-debug-sections={all,gas,none}
> compress debug sections by default
> + --enable-default-compressed-debug-sections-algorithm={zlib,zstd}
> + Default compression algorithm for
> + --enable-compressed-debug-sections.
> --enable-x86-relax-relocations
> generate x86 relax relocations by default
> --enable-elf-stt-common generate ELF common symbols with STT_COMMON type by
> @@ -10722,7 +10726,7 @@ else
> lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
> lt_status=$lt_dlunknown
> cat > conftest.$ac_ext <<_LT_EOF
> -#line 10725 "configure"
> +#line 10729 "configure"
> #include "confdefs.h"
>
> #if HAVE_DLFCN_H
> @@ -10828,7 +10832,7 @@ else
> lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
> lt_status=$lt_dlunknown
> cat > conftest.$ac_ext <<_LT_EOF
> -#line 10831 "configure"
> +#line 10835 "configure"
> #include "confdefs.h"
>
> #if HAVE_DLFCN_H
> @@ -11502,6 +11506,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
> +
> # PR gas/19520
> # Decide if x86 assembler should generate relax relocations.
> ac_default_x86_relax_relocations=unset
> @@ -12671,6 +12684,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
> +
> +
> # Turn on all targets if possible
> if test ${all_targets} = "yes"; then
> case ${target_cpu_type} in
> diff --git a/gas/configure.ac b/gas/configure.ac
> index e6f3298cb3e..feb43399ce8 100644
> --- a/gas/configure.ac
> +++ b/gas/configure.ac
> @@ -76,6 +76,15 @@ AC_ARG_ENABLE(compressed_debug_sections,
> *) ac_default_compressed_debug_sections=unset ;;
> 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
> +
> # PR gas/19520
> # Decide if x86 assembler should generate relax relocations.
> ac_default_x86_relax_relocations=unset
> @@ -755,6 +764,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.])
> +
> # Turn on all targets if possible
> if test ${all_targets} = "yes"; then
> case ${target_cpu_type} in
> 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;
More information about the Binutils
mailing list