From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ed1-x532.google.com (mail-ed1-x532.google.com [IPv6:2a00:1450:4864:20::532]) by sourceware.org (Postfix) with ESMTPS id DA1683858400 for ; Wed, 21 Sep 2022 07:36:58 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org DA1683858400 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-ed1-x532.google.com with SMTP id b35so7429922edf.0 for ; Wed, 21 Sep 2022 00:36:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date; bh=a2xbxaT9l/Zzir+4oNRBSwRxKJB2QReQ4J1Etz39/Ds=; b=MPO8auiICcw0hDBgGbxBg9RqFv3u6edy8H8VLcWildWCE6egxybQNKFdHoRHnKanou irvSe7CIVAofaYFTI85+hmPL0WJXks+KGxz4yVRgooFR9K28gOb5ZOhiy6kOnRv93Pz1 REB9RrUC2YqjvQFqFL/zSOU6dVP3KPbnuTZwMYUUXUGsxkgFW7z7Vc2t8P4BTL+Fy2s/ wqqKeo2WV3h+c3UdkUY+GEGtoA2gX2v+9K/7tmp7ooza1QNBIQJKS8i7uQuwYkJMoACW 9b/L0pSY1YQHv7mUYk04Y7WHZ8fZ1U+/FE0mFNVEWmWE93aKeWBCLX0MvQX7CaQfsjud Cm8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date; bh=a2xbxaT9l/Zzir+4oNRBSwRxKJB2QReQ4J1Etz39/Ds=; b=5tTiU5sBHi0yWCtpdaLd1Bv80HPDiF9S+XmygYjp9EdFV7gcvpK+GqKulajaw/4Odr vaxwuG7nvQgoBM9SU29EJrybCCm4ws1TkJzUUGAie8agfwQkstX1WbxoG0KKP7++6vI9 7KQgLL55wyV5DvChvN9gjUsIqKo6oHobMBztC+dCq0VeR9nfkynn16ChBAbSZ2WkiRrr VRXiS7js0hx9Pt39C2gC8xuO3XXtKUcktzaiUAiVf8Lao/H2kucgU+DPrpem+Qqism/X MASn5cp/mjyalvz55OmwCL79hI+UYjGkUFTjJjR/UFyTQcr527gdl8C/Kp6ZnROvxlmJ DpAg== X-Gm-Message-State: ACrzQf2/3QuBf/82Zbrp/ZTQU+jfFaAc0pe7+wJd5Sdrf9oKFQHUVgy3 bD7tg0FEwmEkE1AaKnwhztBuO41uTc6H3aJxMrQ= X-Google-Smtp-Source: AMsMyM6FgDiJuD43tmo8CczSVNxinUWNOMihZjZRRCL5PvUpV9Nr4QhMq6XQKZBnwCPCFYbFaRfd3qGOwvPXo8kBe9s= X-Received: by 2002:a05:6402:3596:b0:450:c4d9:a04b with SMTP id y22-20020a056402359600b00450c4d9a04bmr23853991edc.218.1663745817245; Wed, 21 Sep 2022 00:36:57 -0700 (PDT) MIME-Version: 1.0 References: <20220701065725.3839926-1-maskray@google.com> <20220701072057.f2ojdm4pdm5257ni@google.com> In-Reply-To: From: Richard Biener Date: Wed, 21 Sep 2022 09:36:45 +0200 Message-ID: Subject: Re: [PATCH] Remove legacy -gz=zlib-gnu To: =?UTF-8?Q?Martin_Li=C5=A1ka?= Cc: Fangrui Song , Andrew Pinski , Fangrui Song , GCC Patches Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-8.1 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On Tue, Sep 20, 2022 at 2:55 PM Martin Li=C5=A1ka 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=3Dzlib-gnu`), no project uses > >>> -gz=3Dzlib-gnu (valgrind has a configure to use -gz=3Dzlib). > >>> 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=3Dzstd 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=3Dzlib-gnu as an alias to gz=3Dzlib instea= d 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=3Dzlib-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) Va= lue(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=3D0; lt_dlno_uscore=3D1; lt_dlneed_uscore=3D2 > >>> lt_status=3D$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=3D0; lt_dlno_uscore=3D1; lt_dlneed_uscore=3D2 > >>> lt_status=3D$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=3D0 > >>> - # Since binutils 2.26, gas supports --compress-debug-sections=3Dt= ype, > >>> + # Since binutils 2.26, gas supports --compress-debug-sections=3Dz= lib, > >>> # defaulting to the ELF gABI format. > >>> - elif $gcc_cv_as --compress-debug-sections=3Dzlib-gnu -o conftest.= o conftest.s > /dev/null 2>&1 > >>> + elif $gcc_cv_as --compress-debug-sections=3Dzlib -o conftest.o co= nftest.s > /dev/null 2>&1 > >>> then > >>> gcc_cv_as_compress_debug=3D2 > >>> gcc_cv_as_compress_debug_option=3D"--compress-debug-sections" > >>> gcc_cv_as_no_compress_debug_option=3D"--nocompress-debug-sectio= ns" > >>> - # Before binutils 2.26, gas only supported --compress-debug-optio= ns 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=3D1 > >>> - gcc_cv_as_compress_debug_option=3D"--compress-debug-sections" > >>> - gcc_cv_as_no_compress_debug_option=3D"--nocompress-debug-sectio= ns" > >>> else > >>> gcc_cv_as_compress_debug=3D0 > >>> 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 compres= sed debug sections" >&5 > >>> $as_echo_n "checking linker for compressed debug sections... " >&6; = } > >>> -# gold/gld support compressed debug sections since binutils 2.19/2.2= 1 > >>> -# In binutils 2.26, gld gained support for the ELF gABI format. > >>> +# GNU ld/gold support --compressed-debug-sections=3Dzlib since binut= ils 2.26. > >>> if test $in_tree_ld =3D yes ; then > >>> gcc_cv_ld_compress_debug=3D0 > >>> if test $ld_is_mold =3D yes; then > >>> gcc_cv_ld_compress_debug=3D3 > >>> gcc_cv_ld_compress_debug_option=3D"--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 =3D yes && test $ld_is_gold =3D yes;= then > >>> - gcc_cv_ld_compress_debug=3D2 > >>> - gcc_cv_ld_compress_debug_option=3D"--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 =3D yes && test $ld_is_gold =3D no; = then > >>> gcc_cv_ld_compress_debug=3D3 > >>> gcc_cv_ld_compress_debug_option=3D"--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 =3D yes; then > >>> - gcc_cv_ld_compress_debug=3D1 > >>> fi > >>> elif echo "$ld_ver" | grep GNU > /dev/null; then > >>> if test $ld_is_mold =3D yes; then > >>> gcc_cv_ld_compress_debug=3D3 > >>> gcc_cv_ld_compress_debug_option=3D"--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=3D0 > >>> - elif test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -lt 26; then > >>> - gcc_cv_ld_compress_debug=3D1 > >>> else > >>> gcc_cv_ld_compress_debug=3D3 > >>> gcc_cv_ld_compress_debug_option=3D"--compress-debug-sections" > >>> fi > >>> - if test $ld_is_gold =3D yes; then > >>> - gcc_cv_ld_compress_debug=3D2 > >>> - gcc_cv_ld_compress_debug_option=3D"--compress-debug-sections" > >>> - fi > >>> else > >>> case "${target}" in > >>> *-*-solaris2*) > >>> diff --git a/gcc/configure.ac b/gcc/configure.ac > >>> index 446747311a6..f40f75271c2 100644 > >>> --- a/gcc/configure.ac > >>> +++ b/gcc/configure.ac > >>> @@ -5733,20 +5733,13 @@ gcc_GAS_CHECK_FEATURE([compressed debug secti= ons], > >>> 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=3D0 > >>> - # Since binutils 2.26, gas supports --compress-debug-sections=3Dt= ype, > >>> + # Since binutils 2.26, gas supports --compress-debug-sections=3Dz= lib, > >>> # defaulting to the ELF gABI format. > >>> - elif $gcc_cv_as --compress-debug-sections=3Dzlib-gnu -o conftest.= o conftest.s > /dev/null 2>&1 > >>> + elif $gcc_cv_as --compress-debug-sections=3Dzlib -o conftest.o co= nftest.s > /dev/null 2>&1 > >>> then > >>> gcc_cv_as_compress_debug=3D2 > >>> gcc_cv_as_compress_debug_option=3D"--compress-debug-sections" > >>> gcc_cv_as_no_compress_debug_option=3D"--nocompress-debug-sectio= ns" > >>> - # Before binutils 2.26, gas only supported --compress-debug-optio= ns 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=3D1 > >>> - gcc_cv_as_compress_debug_option=3D"--compress-debug-sections" > >>> - gcc_cv_as_no_compress_debug_option=3D"--nocompress-debug-sectio= ns" > >>> else > >>> gcc_cv_as_compress_debug=3D0 > >>> fi]) > >>> @@ -6131,42 +6124,28 @@ fi > >>> AC_MSG_RESULT($gcc_cv_ld_eh_gc_sections_bug) > >>> > >>> AC_MSG_CHECKING(linker for compressed debug sections) > >>> -# gold/gld support compressed debug sections since binutils 2.19/2.2= 1 > >>> -# In binutils 2.26, gld gained support for the ELF gABI format. > >>> +# GNU ld/gold support --compressed-debug-sections=3Dzlib since binut= ils 2.26. > >>> if test $in_tree_ld =3D yes ; then > >>> gcc_cv_ld_compress_debug=3D0 > >>> if test $ld_is_mold =3D yes; then > >>> gcc_cv_ld_compress_debug=3D3 > >>> gcc_cv_ld_compress_debug_option=3D"--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 =3D yes && test $ld_is_gold =3D yes;= then > >>> - gcc_cv_ld_compress_debug=3D2 > >>> - gcc_cv_ld_compress_debug_option=3D"--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 =3D yes && test $ld_is_gold =3D no; = then > >>> gcc_cv_ld_compress_debug=3D3 > >>> gcc_cv_ld_compress_debug_option=3D"--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 =3D yes; then > >>> - gcc_cv_ld_compress_debug=3D1 > >>> fi > >>> elif echo "$ld_ver" | grep GNU > /dev/null; then > >>> if test $ld_is_mold =3D yes; then > >>> gcc_cv_ld_compress_debug=3D3 > >>> gcc_cv_ld_compress_debug_option=3D"--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=3D0 > >>> - elif test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -lt 26; then > >>> - gcc_cv_ld_compress_debug=3D1 > >>> else > >>> gcc_cv_ld_compress_debug=3D3 > >>> gcc_cv_ld_compress_debug_option=3D"--compress-debug-sections" > >>> fi > >>> - if test $ld_is_gold =3D yes; then > >>> - gcc_cv_ld_compress_debug=3D2 > >>> - gcc_cv_ld_compress_debug_option=3D"--compress-debug-sections" > >>> - fi > >>> else > >>> changequote(,)dnl > >>> case "${target}" in > >>> diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi > >>> index 757775ea576..467659cb094 100644 > >>> --- a/gcc/doc/invoke.texi > >>> +++ b/gcc/doc/invoke.texi > >>> @@ -10775,12 +10775,11 @@ location views are enabled. > >>> Produce compressed debug sections in DWARF format, if that is suppor= ted. > >>> If @var{type} is not given, the default type depends on the capabili= ties > >>> of the assembler and linker used. @var{type} may be one of > >>> -@samp{none} (don't compress debug sections), @samp{zlib} (use zlib > >>> -compression in ELF gABI format), or @samp{zlib-gnu} (use zlib > >>> -compression in traditional GNU format). If the linker doesn't suppo= rt > >>> -writing compressed debug sections, the option is rejected. Otherwis= e, > >>> -if the assembler does not support them, @option{-gz} is silently ign= ored > >>> -when producing object files. > >>> +@samp{none} (don't compress debug sections), or @samp{zlib} (use zli= b > >>> +compression in ELF gABI format). If the linker doesn't support writ= ing > >>> +compressed debug sections, the option is rejected. Otherwise, if th= e > >>> +assembler does not support them, @option{-gz} is silently ignored wh= en > >>> +producing object files. > >>> > >>> @item -femit-struct-debug-baseonly > >>> @opindex femit-struct-debug-baseonly > >>> diff --git a/gcc/gcc.cc b/gcc/gcc.cc > >>> index 5cbb38560b2..660cd6f4ef4 100644 > >>> --- a/gcc/gcc.cc > >>> +++ b/gcc/gcc.cc > >>> @@ -827,22 +827,11 @@ proper position among the other output files. = */ > >>> /* No linker support. */ > >>> #define LINK_COMPRESS_DEBUG_SPEC \ > >>> " %{gz*:%e-gz is not supported in this configuration} " > >>> -#elif HAVE_LD_COMPRESS_DEBUG =3D=3D 1 > >>> -/* GNU style on input, GNU ld options. Reject, not useful. */ > >>> -#define LINK_COMPRESS_DEBUG_SPEC \ > >>> - " %{gz*:%e-gz is not supported in this configuration} " > >>> -#elif HAVE_LD_COMPRESS_DEBUG =3D=3D 2 > >>> -/* GNU style, GNU gold options. */ > >>> -#define LINK_COMPRESS_DEBUG_SPEC \ > >>> - " %{gz|gz=3Dzlib-gnu:" LD_COMPRESS_DEBUG_OPTION "=3Dzlib}" \ > >>> - " %{gz=3Dnone:" LD_COMPRESS_DEBUG_OPTION "=3Dnone}" \ > >>> - " %{gz=3Dzlib:%e-gz=3Dzlib is not supported in this configura= tion} " > >>> #elif HAVE_LD_COMPRESS_DEBUG =3D=3D 3 > >>> /* ELF gABI style. */ > >>> #define LINK_COMPRESS_DEBUG_SPEC \ > >>> " %{gz|gz=3Dzlib:" LD_COMPRESS_DEBUG_OPTION "=3Dzlib}" \ > >>> - " %{gz=3Dnone:" LD_COMPRESS_DEBUG_OPTION "=3Dnone}" \ > >>> - " %{gz=3Dzlib-gnu:" LD_COMPRESS_DEBUG_OPTION "=3Dzlib-gnu} " > >>> + " %{gz=3Dnone:" LD_COMPRESS_DEBUG_OPTION "=3Dnone}" > >>> #else > >>> #error Unknown value for HAVE_LD_COMPRESS_DEBUG. > >>> #endif > >>> @@ -891,18 +880,11 @@ proper position among the other output files. = */ > >>> /* No assembler support. Ignore silently. */ > >>> #define ASM_COMPRESS_DEBUG_SPEC \ > >>> " %{gz*:} " > >>> -#elif HAVE_AS_COMPRESS_DEBUG =3D=3D 1 > >>> -/* GNU style, GNU as options. */ > >>> -#define ASM_COMPRESS_DEBUG_SPEC \ > >>> - " %{gz|gz=3Dzlib-gnu:" AS_COMPRESS_DEBUG_OPTION "}" \ > >>> - " %{gz=3Dnone:" AS_NO_COMPRESS_DEBUG_OPTION "}" \ > >>> - " %{gz=3Dzlib:%e-gz=3Dzlib is not supported in this configura= tion} " > >>> #elif HAVE_AS_COMPRESS_DEBUG =3D=3D 2 > >>> /* ELF gABI style. */ > >>> #define ASM_COMPRESS_DEBUG_SPEC \ > >>> " %{gz|gz=3Dzlib:" AS_COMPRESS_DEBUG_OPTION "=3Dzlib}" \ > >>> - " %{gz=3Dnone:" AS_COMPRESS_DEBUG_OPTION "=3Dnone}" \ > >>> - " %{gz=3Dzlib-gnu:" AS_COMPRESS_DEBUG_OPTION "=3Dzlib-gnu} " > >>> + " %{gz=3Dnone:" AS_COMPRESS_DEBUG_OPTION "=3Dnone}" > >>> #else > >>> #error Unknown value for HAVE_AS_COMPRESS_DEBUG. > >>> #endif > >>> -- > >>> 2.37.0.rc0.161.g10f37bed90-goog > >>> >