Re: [PATCH] Remove legacy -gz=zlib-gnu
On Wed, Sep 21, 2022 at 9:49 AM Martin Liška wrote: > > On 9/21/22 09:36, Richard Biener wrote: > > If it's all configure time what's the point in > > "deprecating" it? > > Note it's one of our options -gz where 'zlib-gnu' is one of the possible > option values. I see. Not sure if deprecating is really necessary, you need to keep recognizing zlib-gnu as no-op anyway. So I'd just go ahead and remove support for it. > Martin
Re: [PATCH] Remove legacy -gz=zlib-gnu
On 9/21/22 09:36, Richard Biener wrote: > If it's all configure time what's the point in > "deprecating" it? Note it's one of our options -gz where 'zlib-gnu' is one of the possible option values. Martin
Re: [PATCH] Remove legacy -gz=zlib-gnu
On Wed, Sep 21, 2022 at 12:37 AM Richard Biener wrote: > > On Tue, Sep 20, 2022 at 2:55 PM Martin Liška wrote: > > > > On 7/1/22 09:20, Fangrui Song via Gcc-patches wrote: > > > On 2022-07-01, Andrew Pinski wrote: > > >> On Thu, Jun 30, 2022 at 11:58 PM Fangrui Song via Gcc-patches > > >> wrote: > > >>> > > >>> From: Fangrui Song > > >>> > > >>> SHF_COMPRESSED style zlib has been supported since binutils 2.26 > > >>> and the legacy zlib-gnu option hasn't gain adoption. > > >>> According to Debian Code Search (`gz=zlib-gnu`), no project uses > > >>> -gz=zlib-gnu (valgrind has a configure to use -gz=zlib). > > >>> Remove support for the legacy zlib-gnu and simplify configure.ac by > > >>> removing zlib-gnu ld/as check. > > >> > > >> A couple of things, you are missing a changelog. > > > > > > Sorry. > > > > > >> Second, why remove something which is still working? > > > > Hi. > > > > I do support the option removal, while I would replace the removal with a > > warning > > saying no compression will be used. > > > > > > > > It's unused and its existence causes confusion: the paradox of choice. > > > People may assume the support may be good but newer DWARF consumers may > > > not support the legacy format. > > > > Agree, the compression format is legacy. I verified all openSUSE packages > > (15k) > > and there's no project actively using it. > > > > > > > > The other motivation is to clean up it a bit. I foresee that someone > > > will add --compress-debug-sections=zstd to binutils and configure.ac and > > > gcc/gcc.cc would become more messy. > > > > The argument makes sense, it will be even bigger mess. > > > > @Richi: Is it something we can deprecate for GCC 13? > > What's the practical difference between zlib and zlib-gnu? Can we just > map zlib-gnu to zlib? If it's all configure time what's the point in > "deprecating" it? zlib-gnu uses the legacy .zdebug section name with a "ZLIB" magic: http://www.linker-aliens.org/blogs/ali/entry/elf_section_compression/ https://maskray.me/blog/2022-01-23-compressed-debug-sections has some history about how the zlib-gabi replacement: ELFCOMPRESS_ZLIB . FWIW I removed -gz=zlib-gnu from clang and .zdebug support from various llvm-project tools. I cannot really find uses of -gz=zlib-gnu in the wild. Users can always fallback to -Wa, and -Wl, if their tools are so old that ELFCOMPRESS_ZLIB is unsupported. > Richard. > > > > > Martin > > > > > > > >> Third, why not just make gz=zlib-gnu as an alias to gz=zlib instead so > > >> if someone used it before it will still work. we try not to remove > > >> options; have them emit a warning and be ignored (or moved over to the > > >> closed option). > > > > > > Changing the semantics of -gz=zlib-gnu would be even more confusing. > > > > > >> Thanks, > > >> Andrew > > >> > > >>> --- > > >>> gcc/common.opt | 3 --- > > >>> gcc/configure | 33 ++--- > > >>> gcc/configure.ac| 29 - > > >>> gcc/doc/invoke.texi | 11 +-- > > >>> gcc/gcc.cc | 22 ++ > > >>> 5 files changed, 17 insertions(+), 81 deletions(-) > > >>> > > >>> diff --git a/gcc/common.opt b/gcc/common.opt > > >>> index e7a51e882ba..8754d93d545 100644 > > >>> --- a/gcc/common.opt > > >>> +++ b/gcc/common.opt > > >>> @@ -3424,9 +3424,6 @@ Enum(compressed_debug_sections) String(none) > > >>> Value(0) > > >>> EnumValue > > >>> Enum(compressed_debug_sections) String(zlib) Value(1) > > >>> > > >>> -EnumValue > > >>> -Enum(compressed_debug_sections) String(zlib-gnu) Value(2) > > >>> - > > >>> gz > > >>> Common Driver > > >>> Generate compressed debug sections. > > >>> diff --git a/gcc/configure b/gcc/configure > > >>> index 62872d132ea..ca87e875e9d 100755 > > >>> --- a/gcc/configure > > >>> +++ b/gcc/configure > > >>> @@ -19674,7 +19674,7 @@ else > > >>>lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 > > >>>lt_status=$lt_dlunknown > > >>>cat > conftest.$ac_ext <<_LT_EOF > > >>> -#line 19679 "configure" > > >>> +#line 19677 "configure" > > >>> #include "confdefs.h" > > >>> > > >>> #if HAVE_DLFCN_H > > >>> @@ -19780,7 +19780,7 @@ else > > >>>lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 > > >>>lt_status=$lt_dlunknown > > >>>cat > conftest.$ac_ext <<_LT_EOF > > >>> -#line 19785 "configure" > > >>> +#line 19783 "configure" > > >>> #include "confdefs.h" > > >>> > > >>> #if HAVE_DLFCN_H > > >>> @@ -29711,20 +29711,13 @@ else > > >>> if $gcc_cv_as --compress-debug-sections -o conftest.o conftest.s > > >>> 2>&1 | grep -i warning > /dev/null > > >>> then > > >>> gcc_cv_as_compress_debug=0 > > >>> - # Since binutils 2.26, gas supports --compress-debug-sections=type, > > >>> + # Since binutils 2.26, gas supports --compress-debug-sections=zlib, > > >>> # defaulting to the ELF gABI format. > > >>> - elif $gcc_cv_as --compress-debug-sections=zlib-gnu -o conftest.o > > >>> conftest.s > /dev/null 2>&1 > >
Re: [PATCH] Remove legacy -gz=zlib-gnu
On Tue, Sep 20, 2022 at 2:55 PM Martin Liška wrote: > > On 7/1/22 09:20, Fangrui Song via Gcc-patches wrote: > > On 2022-07-01, Andrew Pinski wrote: > >> On Thu, Jun 30, 2022 at 11:58 PM Fangrui Song via Gcc-patches > >> wrote: > >>> > >>> From: Fangrui Song > >>> > >>> SHF_COMPRESSED style zlib has been supported since binutils 2.26 > >>> and the legacy zlib-gnu option hasn't gain adoption. > >>> According to Debian Code Search (`gz=zlib-gnu`), no project uses > >>> -gz=zlib-gnu (valgrind has a configure to use -gz=zlib). > >>> Remove support for the legacy zlib-gnu and simplify configure.ac by > >>> removing zlib-gnu ld/as check. > >> > >> A couple of things, you are missing a changelog. > > > > Sorry. > > > >> Second, why remove something which is still working? > > Hi. > > I do support the option removal, while I would replace the removal with a > warning > saying no compression will be used. > > > > > It's unused and its existence causes confusion: the paradox of choice. > > People may assume the support may be good but newer DWARF consumers may > > not support the legacy format. > > Agree, the compression format is legacy. I verified all openSUSE packages > (15k) > and there's no project actively using it. > > > > > The other motivation is to clean up it a bit. I foresee that someone > > will add --compress-debug-sections=zstd to binutils and configure.ac and > > gcc/gcc.cc would become more messy. > > The argument makes sense, it will be even bigger mess. > > @Richi: Is it something we can deprecate for GCC 13? What's the practical difference between zlib and zlib-gnu? Can we just map zlib-gnu to zlib? If it's all configure time what's the point in "deprecating" it? Richard. > > Martin > > > > >> Third, why not just make gz=zlib-gnu as an alias to gz=zlib instead so > >> if someone used it before it will still work. we try not to remove > >> options; have them emit a warning and be ignored (or moved over to the > >> closed option). > > > > Changing the semantics of -gz=zlib-gnu would be even more confusing. > > > >> Thanks, > >> Andrew > >> > >>> --- > >>> gcc/common.opt | 3 --- > >>> gcc/configure | 33 ++--- > >>> gcc/configure.ac| 29 - > >>> gcc/doc/invoke.texi | 11 +-- > >>> gcc/gcc.cc | 22 ++ > >>> 5 files changed, 17 insertions(+), 81 deletions(-) > >>> > >>> diff --git a/gcc/common.opt b/gcc/common.opt > >>> index e7a51e882ba..8754d93d545 100644 > >>> --- a/gcc/common.opt > >>> +++ b/gcc/common.opt > >>> @@ -3424,9 +3424,6 @@ Enum(compressed_debug_sections) String(none) > >>> Value(0) > >>> EnumValue > >>> Enum(compressed_debug_sections) String(zlib) Value(1) > >>> > >>> -EnumValue > >>> -Enum(compressed_debug_sections) String(zlib-gnu) Value(2) > >>> - > >>> gz > >>> Common Driver > >>> Generate compressed debug sections. > >>> diff --git a/gcc/configure b/gcc/configure > >>> index 62872d132ea..ca87e875e9d 100755 > >>> --- a/gcc/configure > >>> +++ b/gcc/configure > >>> @@ -19674,7 +19674,7 @@ else > >>>lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 > >>>lt_status=$lt_dlunknown > >>>cat > conftest.$ac_ext <<_LT_EOF > >>> -#line 19679 "configure" > >>> +#line 19677 "configure" > >>> #include "confdefs.h" > >>> > >>> #if HAVE_DLFCN_H > >>> @@ -19780,7 +19780,7 @@ else > >>>lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 > >>>lt_status=$lt_dlunknown > >>>cat > conftest.$ac_ext <<_LT_EOF > >>> -#line 19785 "configure" > >>> +#line 19783 "configure" > >>> #include "confdefs.h" > >>> > >>> #if HAVE_DLFCN_H > >>> @@ -29711,20 +29711,13 @@ else > >>> if $gcc_cv_as --compress-debug-sections -o conftest.o conftest.s 2>&1 > >>> | grep -i warning > /dev/null > >>> then > >>> gcc_cv_as_compress_debug=0 > >>> - # Since binutils 2.26, gas supports --compress-debug-sections=type, > >>> + # Since binutils 2.26, gas supports --compress-debug-sections=zlib, > >>> # defaulting to the ELF gABI format. > >>> - elif $gcc_cv_as --compress-debug-sections=zlib-gnu -o conftest.o > >>> conftest.s > /dev/null 2>&1 > >>> + elif $gcc_cv_as --compress-debug-sections=zlib -o conftest.o > >>> conftest.s > /dev/null 2>&1 > >>> then > >>> gcc_cv_as_compress_debug=2 > >>> gcc_cv_as_compress_debug_option="--compress-debug-sections" > >>> gcc_cv_as_no_compress_debug_option="--nocompress-debug-sections" > >>> - # Before binutils 2.26, gas only supported --compress-debug-options > >>> and > >>> - # emitted the traditional GNU format. > >>> - elif $gcc_cv_as --compress-debug-sections -o conftest.o conftest.s > > >>> /dev/null 2>&1 > >>> - then > >>> - gcc_cv_as_compress_debug=1 > >>> - gcc_cv_as_compress_debug_option="--compress-debug-sections" > >>> - gcc_cv_as_no_compress_debug_option="--nocompress-debug-sections" > >>> else > >>> gcc_cv_as_compress_debug=0 > >>> fi > >>> @@
Re: [PATCH] Remove legacy -gz=zlib-gnu
On 7/1/22 09:20, Fangrui Song via Gcc-patches wrote: > On 2022-07-01, Andrew Pinski wrote: >> On Thu, Jun 30, 2022 at 11:58 PM Fangrui Song via Gcc-patches >> wrote: >>> >>> From: Fangrui Song >>> >>> SHF_COMPRESSED style zlib has been supported since binutils 2.26 >>> and the legacy zlib-gnu option hasn't gain adoption. >>> According to Debian Code Search (`gz=zlib-gnu`), no project uses >>> -gz=zlib-gnu (valgrind has a configure to use -gz=zlib). >>> Remove support for the legacy zlib-gnu and simplify configure.ac by >>> removing zlib-gnu ld/as check. >> >> A couple of things, you are missing a changelog. > > Sorry. > >> Second, why remove something which is still working? Hi. I do support the option removal, while I would replace the removal with a warning saying no compression will be used. > > It's unused and its existence causes confusion: the paradox of choice. > People may assume the support may be good but newer DWARF consumers may > not support the legacy format. Agree, the compression format is legacy. I verified all openSUSE packages (15k) and there's no project actively using it. > > The other motivation is to clean up it a bit. I foresee that someone > will add --compress-debug-sections=zstd to binutils and configure.ac and > gcc/gcc.cc would become more messy. The argument makes sense, it will be even bigger mess. @Richi: Is it something we can deprecate for GCC 13? Martin > >> Third, why not just make gz=zlib-gnu as an alias to gz=zlib instead so >> if someone used it before it will still work. we try not to remove >> options; have them emit a warning and be ignored (or moved over to the >> closed option). > > Changing the semantics of -gz=zlib-gnu would be even more confusing. > >> Thanks, >> Andrew >> >>> --- >>> gcc/common.opt | 3 --- >>> gcc/configure | 33 ++--- >>> gcc/configure.ac | 29 - >>> gcc/doc/invoke.texi | 11 +-- >>> gcc/gcc.cc | 22 ++ >>> 5 files changed, 17 insertions(+), 81 deletions(-) >>> >>> diff --git a/gcc/common.opt b/gcc/common.opt >>> index e7a51e882ba..8754d93d545 100644 >>> --- a/gcc/common.opt >>> +++ b/gcc/common.opt >>> @@ -3424,9 +3424,6 @@ Enum(compressed_debug_sections) String(none) Value(0) >>> EnumValue >>> Enum(compressed_debug_sections) String(zlib) Value(1) >>> >>> -EnumValue >>> -Enum(compressed_debug_sections) String(zlib-gnu) Value(2) >>> - >>> gz >>> Common Driver >>> Generate compressed debug sections. >>> diff --git a/gcc/configure b/gcc/configure >>> index 62872d132ea..ca87e875e9d 100755 >>> --- a/gcc/configure >>> +++ b/gcc/configure >>> @@ -19674,7 +19674,7 @@ else >>> lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 >>> lt_status=$lt_dlunknown >>> cat > conftest.$ac_ext <<_LT_EOF >>> -#line 19679 "configure" >>> +#line 19677 "configure" >>> #include "confdefs.h" >>> >>> #if HAVE_DLFCN_H >>> @@ -19780,7 +19780,7 @@ else >>> lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 >>> lt_status=$lt_dlunknown >>> cat > conftest.$ac_ext <<_LT_EOF >>> -#line 19785 "configure" >>> +#line 19783 "configure" >>> #include "confdefs.h" >>> >>> #if HAVE_DLFCN_H >>> @@ -29711,20 +29711,13 @@ else >>> if $gcc_cv_as --compress-debug-sections -o conftest.o conftest.s 2>&1 | >>> grep -i warning > /dev/null >>> then >>> gcc_cv_as_compress_debug=0 >>> - # Since binutils 2.26, gas supports --compress-debug-sections=type, >>> + # Since binutils 2.26, gas supports --compress-debug-sections=zlib, >>> # defaulting to the ELF gABI format. >>> - elif $gcc_cv_as --compress-debug-sections=zlib-gnu -o conftest.o >>> conftest.s > /dev/null 2>&1 >>> + elif $gcc_cv_as --compress-debug-sections=zlib -o conftest.o conftest.s >>> > /dev/null 2>&1 >>> then >>> gcc_cv_as_compress_debug=2 >>> gcc_cv_as_compress_debug_option="--compress-debug-sections" >>> gcc_cv_as_no_compress_debug_option="--nocompress-debug-sections" >>> - # Before binutils 2.26, gas only supported --compress-debug-options and >>> - # emitted the traditional GNU format. >>> - elif $gcc_cv_as --compress-debug-sections -o conftest.o conftest.s > >>> /dev/null 2>&1 >>> - then >>> - gcc_cv_as_compress_debug=1 >>> - gcc_cv_as_compress_debug_option="--compress-debug-sections" >>> - gcc_cv_as_no_compress_debug_option="--nocompress-debug-sections" >>> else >>> gcc_cv_as_compress_debug=0 >>> fi >>> @@ -30238,42 +30231,28 @@ $as_echo "$gcc_cv_ld_eh_gc_sections_bug" >&6; } >>> >>> { $as_echo "$as_me:${as_lineno-$LINENO}: checking linker for compressed >>> debug sections" >&5 >>> $as_echo_n "checking linker for compressed debug sections... " >&6; } >>> -# gold/gld support compressed debug sections since binutils 2.19/2.21 >>> -# In binutils 2.26, gld gained support for the ELF gABI format. >>> +# GNU ld/gold support --compressed-debug-sections=zlib since binutils 2.26. >>> if
Re: [PATCH] Remove legacy -gz=zlib-gnu
On 2022-07-01, Andrew Pinski wrote: On Thu, Jun 30, 2022 at 11:58 PM Fangrui Song via Gcc-patches wrote: From: Fangrui Song SHF_COMPRESSED style zlib has been supported since binutils 2.26 and the legacy zlib-gnu option hasn't gain adoption. According to Debian Code Search (`gz=zlib-gnu`), no project uses -gz=zlib-gnu (valgrind has a configure to use -gz=zlib). Remove support for the legacy zlib-gnu and simplify configure.ac by removing zlib-gnu ld/as check. A couple of things, you are missing a changelog. Sorry. Second, why remove something which is still working? It's unused and its existence causes confusion: the paradox of choice. People may assume the support may be good but newer DWARF consumers may not support the legacy format. The other motivation is to clean up it a bit. I foresee that someone will add --compress-debug-sections=zstd to binutils and configure.ac and gcc/gcc.cc would become more messy. Third, why not just make gz=zlib-gnu as an alias to gz=zlib instead so if someone used it before it will still work. we try not to remove options; have them emit a warning and be ignored (or moved over to the closed option). Changing the semantics of -gz=zlib-gnu would be even more confusing. Thanks, Andrew --- gcc/common.opt | 3 --- gcc/configure | 33 ++--- gcc/configure.ac| 29 - gcc/doc/invoke.texi | 11 +-- gcc/gcc.cc | 22 ++ 5 files changed, 17 insertions(+), 81 deletions(-) diff --git a/gcc/common.opt b/gcc/common.opt index e7a51e882ba..8754d93d545 100644 --- a/gcc/common.opt +++ b/gcc/common.opt @@ -3424,9 +3424,6 @@ Enum(compressed_debug_sections) String(none) Value(0) EnumValue Enum(compressed_debug_sections) String(zlib) Value(1) -EnumValue -Enum(compressed_debug_sections) String(zlib-gnu) Value(2) - gz Common Driver Generate compressed debug sections. diff --git a/gcc/configure b/gcc/configure index 62872d132ea..ca87e875e9d 100755 --- a/gcc/configure +++ b/gcc/configure @@ -19674,7 +19674,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 19679 "configure" +#line 19677 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -19780,7 +19780,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 19785 "configure" +#line 19783 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -29711,20 +29711,13 @@ else if $gcc_cv_as --compress-debug-sections -o conftest.o conftest.s 2>&1 | grep -i warning > /dev/null then gcc_cv_as_compress_debug=0 - # Since binutils 2.26, gas supports --compress-debug-sections=type, + # Since binutils 2.26, gas supports --compress-debug-sections=zlib, # defaulting to the ELF gABI format. - elif $gcc_cv_as --compress-debug-sections=zlib-gnu -o conftest.o conftest.s > /dev/null 2>&1 + elif $gcc_cv_as --compress-debug-sections=zlib -o conftest.o conftest.s > /dev/null 2>&1 then gcc_cv_as_compress_debug=2 gcc_cv_as_compress_debug_option="--compress-debug-sections" gcc_cv_as_no_compress_debug_option="--nocompress-debug-sections" - # Before binutils 2.26, gas only supported --compress-debug-options and - # emitted the traditional GNU format. - elif $gcc_cv_as --compress-debug-sections -o conftest.o conftest.s > /dev/null 2>&1 - then - gcc_cv_as_compress_debug=1 - gcc_cv_as_compress_debug_option="--compress-debug-sections" - gcc_cv_as_no_compress_debug_option="--nocompress-debug-sections" else gcc_cv_as_compress_debug=0 fi @@ -30238,42 +30231,28 @@ $as_echo "$gcc_cv_ld_eh_gc_sections_bug" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking linker for compressed debug sections" >&5 $as_echo_n "checking linker for compressed debug sections... " >&6; } -# gold/gld support compressed debug sections since binutils 2.19/2.21 -# In binutils 2.26, gld gained support for the ELF gABI format. +# GNU ld/gold support --compressed-debug-sections=zlib since binutils 2.26. if test $in_tree_ld = yes ; then gcc_cv_ld_compress_debug=0 if test $ld_is_mold = yes; then gcc_cv_ld_compress_debug=3 gcc_cv_ld_compress_debug_option="--compress-debug-sections" - elif test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 19 -o "$gcc_cv_gld_major_version" -gt 2 \ - && test $in_tree_ld_is_elf = yes && test $ld_is_gold = yes; then -gcc_cv_ld_compress_debug=2 -gcc_cv_ld_compress_debug_option="--compress-debug-sections" elif test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 26 -o "$gcc_cv_gld_major_version" -gt 2 \ && test $in_tree_ld_is_elf = yes && test $ld_is_gold = no; then gcc_cv_ld_compress_debug=3 gcc_cv_ld_compress_debug_option="--compress-debug-sections" - elif test "$gcc_cv_gld_major_version" -eq 2 -a
Re: [PATCH] Remove legacy -gz=zlib-gnu
On Thu, Jun 30, 2022 at 11:58 PM Fangrui Song via Gcc-patches wrote: > > From: Fangrui Song > > SHF_COMPRESSED style zlib has been supported since binutils 2.26 > and the legacy zlib-gnu option hasn't gain adoption. > According to Debian Code Search (`gz=zlib-gnu`), no project uses > -gz=zlib-gnu (valgrind has a configure to use -gz=zlib). > Remove support for the legacy zlib-gnu and simplify configure.ac by > removing zlib-gnu ld/as check. A couple of things, you are missing a changelog. Second, why remove something which is still working? Third, why not just make gz=zlib-gnu as an alias to gz=zlib instead so if someone used it before it will still work. we try not to remove options; have them emit a warning and be ignored (or moved over to the closed option). Thanks, Andrew > --- > gcc/common.opt | 3 --- > gcc/configure | 33 ++--- > gcc/configure.ac| 29 - > gcc/doc/invoke.texi | 11 +-- > gcc/gcc.cc | 22 ++ > 5 files changed, 17 insertions(+), 81 deletions(-) > > diff --git a/gcc/common.opt b/gcc/common.opt > index e7a51e882ba..8754d93d545 100644 > --- a/gcc/common.opt > +++ b/gcc/common.opt > @@ -3424,9 +3424,6 @@ Enum(compressed_debug_sections) String(none) Value(0) > EnumValue > Enum(compressed_debug_sections) String(zlib) Value(1) > > -EnumValue > -Enum(compressed_debug_sections) String(zlib-gnu) Value(2) > - > gz > Common Driver > Generate compressed debug sections. > diff --git a/gcc/configure b/gcc/configure > index 62872d132ea..ca87e875e9d 100755 > --- a/gcc/configure > +++ b/gcc/configure > @@ -19674,7 +19674,7 @@ else >lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 >lt_status=$lt_dlunknown >cat > conftest.$ac_ext <<_LT_EOF > -#line 19679 "configure" > +#line 19677 "configure" > #include "confdefs.h" > > #if HAVE_DLFCN_H > @@ -19780,7 +19780,7 @@ else >lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 >lt_status=$lt_dlunknown >cat > conftest.$ac_ext <<_LT_EOF > -#line 19785 "configure" > +#line 19783 "configure" > #include "confdefs.h" > > #if HAVE_DLFCN_H > @@ -29711,20 +29711,13 @@ else > if $gcc_cv_as --compress-debug-sections -o conftest.o conftest.s 2>&1 | > grep -i warning > /dev/null > then > gcc_cv_as_compress_debug=0 > - # Since binutils 2.26, gas supports --compress-debug-sections=type, > + # Since binutils 2.26, gas supports --compress-debug-sections=zlib, > # defaulting to the ELF gABI format. > - elif $gcc_cv_as --compress-debug-sections=zlib-gnu -o conftest.o > conftest.s > /dev/null 2>&1 > + elif $gcc_cv_as --compress-debug-sections=zlib -o conftest.o conftest.s > > /dev/null 2>&1 > then > gcc_cv_as_compress_debug=2 > gcc_cv_as_compress_debug_option="--compress-debug-sections" > gcc_cv_as_no_compress_debug_option="--nocompress-debug-sections" > - # Before binutils 2.26, gas only supported --compress-debug-options and > - # emitted the traditional GNU format. > - elif $gcc_cv_as --compress-debug-sections -o conftest.o conftest.s > > /dev/null 2>&1 > - then > - gcc_cv_as_compress_debug=1 > - gcc_cv_as_compress_debug_option="--compress-debug-sections" > - gcc_cv_as_no_compress_debug_option="--nocompress-debug-sections" > else > gcc_cv_as_compress_debug=0 > fi > @@ -30238,42 +30231,28 @@ $as_echo "$gcc_cv_ld_eh_gc_sections_bug" >&6; } > > { $as_echo "$as_me:${as_lineno-$LINENO}: checking linker for compressed > debug sections" >&5 > $as_echo_n "checking linker for compressed debug sections... " >&6; } > -# gold/gld support compressed debug sections since binutils 2.19/2.21 > -# In binutils 2.26, gld gained support for the ELF gABI format. > +# GNU ld/gold support --compressed-debug-sections=zlib since binutils 2.26. > if test $in_tree_ld = yes ; then >gcc_cv_ld_compress_debug=0 >if test $ld_is_mold = yes; then > gcc_cv_ld_compress_debug=3 > gcc_cv_ld_compress_debug_option="--compress-debug-sections" > - elif test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" > -ge 19 -o "$gcc_cv_gld_major_version" -gt 2 \ > - && test $in_tree_ld_is_elf = yes && test $ld_is_gold = yes; then > -gcc_cv_ld_compress_debug=2 > -gcc_cv_ld_compress_debug_option="--compress-debug-sections" >elif test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" > -ge 26 -o "$gcc_cv_gld_major_version" -gt 2 \ > && test $in_tree_ld_is_elf = yes && test $ld_is_gold = no; then > gcc_cv_ld_compress_debug=3 > gcc_cv_ld_compress_debug_option="--compress-debug-sections" > - elif test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" > -ge 21 -o "$gcc_cv_gld_major_version" -gt 2 \ > - && test $in_tree_ld_is_elf = yes; then > -gcc_cv_ld_compress_debug=1 >fi > elif echo "$ld_ver" | grep GNU > /dev/null; then >if test $ld_is_mold = yes; then >
[PATCH] Remove legacy -gz=zlib-gnu
From: Fangrui Song SHF_COMPRESSED style zlib has been supported since binutils 2.26 and the legacy zlib-gnu option hasn't gain adoption. According to Debian Code Search (`gz=zlib-gnu`), no project uses -gz=zlib-gnu (valgrind has a configure to use -gz=zlib). Remove support for the legacy zlib-gnu and simplify configure.ac by removing zlib-gnu ld/as check. --- gcc/common.opt | 3 --- gcc/configure | 33 ++--- gcc/configure.ac| 29 - gcc/doc/invoke.texi | 11 +-- gcc/gcc.cc | 22 ++ 5 files changed, 17 insertions(+), 81 deletions(-) diff --git a/gcc/common.opt b/gcc/common.opt index e7a51e882ba..8754d93d545 100644 --- a/gcc/common.opt +++ b/gcc/common.opt @@ -3424,9 +3424,6 @@ Enum(compressed_debug_sections) String(none) Value(0) EnumValue Enum(compressed_debug_sections) String(zlib) Value(1) -EnumValue -Enum(compressed_debug_sections) String(zlib-gnu) Value(2) - gz Common Driver Generate compressed debug sections. diff --git a/gcc/configure b/gcc/configure index 62872d132ea..ca87e875e9d 100755 --- a/gcc/configure +++ b/gcc/configure @@ -19674,7 +19674,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 19679 "configure" +#line 19677 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -19780,7 +19780,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 19785 "configure" +#line 19783 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -29711,20 +29711,13 @@ else if $gcc_cv_as --compress-debug-sections -o conftest.o conftest.s 2>&1 | grep -i warning > /dev/null then gcc_cv_as_compress_debug=0 - # Since binutils 2.26, gas supports --compress-debug-sections=type, + # Since binutils 2.26, gas supports --compress-debug-sections=zlib, # defaulting to the ELF gABI format. - elif $gcc_cv_as --compress-debug-sections=zlib-gnu -o conftest.o conftest.s > /dev/null 2>&1 + elif $gcc_cv_as --compress-debug-sections=zlib -o conftest.o conftest.s > /dev/null 2>&1 then gcc_cv_as_compress_debug=2 gcc_cv_as_compress_debug_option="--compress-debug-sections" gcc_cv_as_no_compress_debug_option="--nocompress-debug-sections" - # Before binutils 2.26, gas only supported --compress-debug-options and - # emitted the traditional GNU format. - elif $gcc_cv_as --compress-debug-sections -o conftest.o conftest.s > /dev/null 2>&1 - then - gcc_cv_as_compress_debug=1 - gcc_cv_as_compress_debug_option="--compress-debug-sections" - gcc_cv_as_no_compress_debug_option="--nocompress-debug-sections" else gcc_cv_as_compress_debug=0 fi @@ -30238,42 +30231,28 @@ $as_echo "$gcc_cv_ld_eh_gc_sections_bug" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking linker for compressed debug sections" >&5 $as_echo_n "checking linker for compressed debug sections... " >&6; } -# gold/gld support compressed debug sections since binutils 2.19/2.21 -# In binutils 2.26, gld gained support for the ELF gABI format. +# GNU ld/gold support --compressed-debug-sections=zlib since binutils 2.26. if test $in_tree_ld = yes ; then gcc_cv_ld_compress_debug=0 if test $ld_is_mold = yes; then gcc_cv_ld_compress_debug=3 gcc_cv_ld_compress_debug_option="--compress-debug-sections" - elif test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 19 -o "$gcc_cv_gld_major_version" -gt 2 \ - && test $in_tree_ld_is_elf = yes && test $ld_is_gold = yes; then -gcc_cv_ld_compress_debug=2 -gcc_cv_ld_compress_debug_option="--compress-debug-sections" elif test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 26 -o "$gcc_cv_gld_major_version" -gt 2 \ && test $in_tree_ld_is_elf = yes && test $ld_is_gold = no; then gcc_cv_ld_compress_debug=3 gcc_cv_ld_compress_debug_option="--compress-debug-sections" - elif test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 21 -o "$gcc_cv_gld_major_version" -gt 2 \ - && test $in_tree_ld_is_elf = yes; then -gcc_cv_ld_compress_debug=1 fi elif echo "$ld_ver" | grep GNU > /dev/null; then if test $ld_is_mold = yes; then gcc_cv_ld_compress_debug=3 gcc_cv_ld_compress_debug_option="--compress-debug-sections" elif test "$ld_vers_major" -lt 2 \ - || test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -lt 21; then + || test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -lt 26; then gcc_cv_ld_compress_debug=0 - elif test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -lt 26; then -gcc_cv_ld_compress_debug=1 else gcc_cv_ld_compress_debug=3 gcc_cv_ld_compress_debug_option="--compress-debug-sections" fi - if test $ld_is_gold = yes; then -gcc_cv_ld_compress_debug=2 -gcc_cv_ld_compress_debug_option="--compress-debug-sections"