From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-qk1-x734.google.com (mail-qk1-x734.google.com [IPv6:2607:f8b0:4864:20::734]) by sourceware.org (Postfix) with ESMTPS id CC75038438A3 for ; Fri, 8 Jan 2021 19:38:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org CC75038438A3 Received: by mail-qk1-x734.google.com with SMTP id p14so9516593qke.6 for ; Fri, 08 Jan 2021 11:38:31 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:to:references:from:autocrypt:subject:message-id :date:user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=maKuwilWPXvBeSUHOCzCD7TNW4ImVXTLs48jHtwHDT0=; b=cPZAUzVZ6AH0kXvlcA31Q3eBMOh+OJU8S89e0Oqy/U5NlT619ZAQNgLwrDzPXB9jzB JVd5+/PRTAqgkO13ha+v2qSIGUSldzMQVoYpTZTcSPqiIn8tg5LbAS9GZX4+Hr7ZRKq5 XPF6kGGMP7ZVS02RBzSjYOC3BsFblmtCsO1ONpptpkwSlyFLmqdxxPv0zIs5oK2YUyVc ETy4BSG/daLEFYuWej6ks+eigJTOVrBDqwAPrSUAzZqIXcTIE5zIudsIFXd32x+IMJ3+ b6KB1kDbz0iSvkKQSnDoG3hVxs0yIT5Yk6BVCSeAxMeZ5i92jLAdFLOJGwARJwxqXVNN GgDA== X-Gm-Message-State: AOAM530XnudlkX07DCcYPov2bo1nMi2XkKaUGFWdVLmWMMow2Wxq/FcH ru/UTyvEsU1y060z22N7J0wpWAkDA15FlA== X-Google-Smtp-Source: ABdhPJzRd9ZBG3X/bB9gRhMbyLMH9kvlamOsDaf1sTQo6j6BdnxzszXuX8tsvF8blk9E32VA1XCzoQ== X-Received: by 2002:a05:620a:569:: with SMTP id p9mr5403690qkp.274.1610134711187; Fri, 08 Jan 2021 11:38:31 -0800 (PST) Received: from [192.168.1.4] ([177.194.48.209]) by smtp.googlemail.com with ESMTPSA id m65sm4873807qtd.5.2021.01.08.11.38.29 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 08 Jan 2021 11:38:30 -0800 (PST) To: Fangrui Song , libc-alpha@sourceware.org References: <20201228194855.510315-1-maskray@google.com> <20201228194855.510315-4-maskray@google.com> From: Adhemerval Zanella Autocrypt: addr=adhemerval.zanella@linaro.org; prefer-encrypt=mutual; keydata= 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 Subject: Re: [PATCH 3/3] install: Replace scripts/output-format.sed with objdump -f [BZ #26559] Message-ID: <0be74da1-a490-be53-86e1-8469dc0b9428@linaro.org> Date: Fri, 8 Jan 2021 16:38:27 -0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <20201228194855.510315-4-maskray@google.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-13.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, NICE_REPLY_A, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 08 Jan 2021 19:38:36 -0000 On 28/12/2020 16:48, Fangrui Song via Libc-alpha wrote: > GNU ld and gold have supported --print-output-format since 2011. glibc > requires binutils>=2.25 (2015), so if LD is GNU ld or gold, we can > assume the option is supported. > > lld is by default a cross linker supporting multiple targets. It auto > detects the file format and does not need OUTPUT_FORMAT. It does not > support --print-output-format. > > By parsing objdump -f, we can support all the three linkers. LGTM and this change seems orthogonal to the other lld adjustments. I have checked that at least with a build for a handful of supported ABIs I see no difference with ld.bfd (with multiple versions). Reviewed-by: Adhemerval Zanella > --- > Makerules | 13 ++----- > .../strcoll-inputs/filelist#en_US.UTF-8 | 1 - > config.make.in | 1 - > configure | 19 ---------- > configure.ac | 11 ------ > scripts/output-format.sed | 35 ------------------- > 6 files changed, 3 insertions(+), 77 deletions(-) > delete mode 100644 scripts/output-format.sed > > diff --git a/Makerules b/Makerules > index ef0fe67d9a..146d1ab650 100644 > --- a/Makerules > +++ b/Makerules > @@ -1065,20 +1065,13 @@ install: $(inst_slibdir)/libc.so$(libc.so-version) > # for the configuration we are building. We put this statement into > # the linker scripts we install for -lc et al so that they will not be > # used by a link for a different format on a multi-architecture system. > -$(common-objpfx)format.lds: $(..)scripts/output-format.sed \ > - $(common-objpfx)config.make \ > +$(common-objpfx)format.lds: $(common-objpfx)config.make \ > $(common-objpfx)config.h $(..)Makerules > -ifneq (unknown,$(output-format)) > - echo > $@.new 'OUTPUT_FORMAT($(output-format))' > -else > $(LINK.o) -shared $(sysdep-LDFLAGS) $(rtld-LDFLAGS) \ > $(LDFLAGS.so) $(LDFLAGS-lib.so) \ > - -x c /dev/null -o $@.so -Wl,--verbose -v 2>/dev/null \ > - | sed -n -f $< > $@.new > - test -s $@.new > + -x c /dev/null -o $@.so 2>/dev/null > + $(OBJDUMP) -f $@.so | sed -n 's/.*file format \(.*\)/OUTPUT_FORMAT(\1)/;T;p' > $@ > rm -f $@.so > -endif > - mv -f $@.new $@ > common-generated += format.lds > > ifndef subdir Ok. > diff --git a/benchtests/strcoll-inputs/filelist#en_US.UTF-8 b/benchtests/strcoll-inputs/filelist#en_US.UTF-8 > index 2f4ef195bb..43eb9efb40 100644 > --- a/benchtests/strcoll-inputs/filelist#en_US.UTF-8 > +++ b/benchtests/strcoll-inputs/filelist#en_US.UTF-8 > @@ -9450,7 +9450,6 @@ move-if-change > check-execstack.awk > pylint > pylintrc > -output-format.sed > merge-test-results.sh > update-copyrights > config-uname.sh Ok. > diff --git a/config.make.in b/config.make.in > index 7ae27564fd..7f47f0caa4 100644 > --- a/config.make.in > +++ b/config.make.in > @@ -73,7 +73,6 @@ fno-unit-at-a-time = @fno_unit_at_a_time@ > bind-now = @bindnow@ > have-hash-style = @libc_cv_hashstyle@ > use-default-link = @use_default_link@ > -output-format = @libc_cv_output_format@ > have-cxx-thread_local = @libc_cv_cxx_thread_local@ > have-loop-to-function = @libc_cv_cc_loop_to_function@ > have-textrel_ifunc = @libc_cv_textrel_ifunc@ Ok. > diff --git a/configure b/configure > index 6dcd2270f8..4b0ab150cb 100755 > --- a/configure > +++ b/configure > @@ -623,7 +623,6 @@ libc_cv_cc_submachine > libc_cv_cc_nofma > libc_cv_mtls_dialect_gnu2 > fno_unit_at_a_time > -libc_cv_output_format > libc_cv_has_glob_dat > libc_cv_hashstyle > libc_cv_fpie > @@ -6077,24 +6076,6 @@ fi > $as_echo "$libc_cv_has_glob_dat" >&6; } > > > -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking linker output format" >&5 > -$as_echo_n "checking linker output format... " >&6; } > -if ${libc_cv_output_format+:} false; then : > - $as_echo_n "(cached) " >&6 > -else > - if libc_cv_output_format=` > -${CC-cc} -nostartfiles -nostdlib $no_ssp -Wl,--print-output-format 2>&5` > -then > - : > -else > - libc_cv_output_format= > -fi > -test -n "$libc_cv_output_format" || libc_cv_output_format=unknown > -fi > -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_output_format" >&5 > -$as_echo "$libc_cv_output_format" >&6; } > - > - > { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -fno-toplevel-reorder -fno-section-anchors" >&5 > $as_echo_n "checking for -fno-toplevel-reorder -fno-section-anchors... " >&6; } > if ${libc_cv_fno_toplevel_reorder+:} false; then : > diff --git a/configure.ac b/configure.ac > index 1a2054cd1a..baf3a05ae7 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -1432,17 +1432,6 @@ fi > rm -f conftest*]) > AC_SUBST(libc_cv_has_glob_dat) > > -AC_CACHE_CHECK(linker output format, libc_cv_output_format, [dnl > -if libc_cv_output_format=` > -${CC-cc} -nostartfiles -nostdlib $no_ssp -Wl,--print-output-format 2>&AS_MESSAGE_LOG_FD` > -then > - : > -else > - libc_cv_output_format= > -fi > -test -n "$libc_cv_output_format" || libc_cv_output_format=unknown]) > -AC_SUBST(libc_cv_output_format) > - > AC_CACHE_CHECK(for -fno-toplevel-reorder -fno-section-anchors, libc_cv_fno_toplevel_reorder, [dnl > cat > conftest.c < int foo; Ok. > diff --git a/scripts/output-format.sed b/scripts/output-format.sed > deleted file mode 100644 > index 364f52059f..0000000000 > --- a/scripts/output-format.sed > +++ /dev/null > @@ -1,35 +0,0 @@ > -/ld.*[ ]-E[BL]/b f > -/collect.*[ ]-E[BL]/b f > -/OUTPUT_FORMAT[^)]*$/{N > -s/\n[ ]*/ / > -} > -t o > -: o > -s/^.*OUTPUT_FORMAT(\([^,]*\), \1, \1).*$/OUTPUT_FORMAT(\1)/ > -t q > -s/^.*OUTPUT_FORMAT(\([^,]*\), \([^,]*\), \([^,]*\)).*$/\1,\2,\3/ > -t s > -s/^.*OUTPUT_FORMAT(\([^,)]*\).*$)/OUTPUT_FORMAT(\1)/ > -t q > -d > -: s > -s/"//g > -G > -s/\n// > -s/^\([^,]*\),\([^,]*\),\([^,]*\),B/OUTPUT_FORMAT(\2)/p > -s/^\([^,]*\),\([^,]*\),\([^,]*\),L/OUTPUT_FORMAT(\3)/p > -s/^\([^,]*\),\([^,]*\),\([^,]*\)/OUTPUT_FORMAT(\1)/p > -/,/s|^|*** BUG in libc/scripts/output-format.sed *** |p > -q > -: q > -s/"//g > -p > -q > -: f > -s/^.*[ ]-E\([BL]\)[ ].*$/,\1/ > -t h > -s/^.*[ ]-E\([BL]\)$/,\1/ > -t h > -d > -: h > -h > Ok.