From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pf1-x434.google.com (mail-pf1-x434.google.com [IPv6:2607:f8b0:4864:20::434]) by sourceware.org (Postfix) with ESMTPS id 8482A3857C45 for ; Fri, 7 Aug 2020 14:55:29 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 8482A3857C45 Received: by mail-pf1-x434.google.com with SMTP id s26so1121166pfm.4 for ; Fri, 07 Aug 2020 07:55:29 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=vMgQjJtSTKCcobP1AjC8O9dh1KuX2zRCIX+zRfCTu9M=; b=Mib9ku8U2j0mC/nl0NS77JC3bIu76kts6yGgKl2MEbeY8WooWB+IVyXS9GOFc1yxb0 +Wa/AyDx59b7X9ijTP0sTWUCX4ugoqnDUzY/rZkgcLNK2twwGRmFBxbUTSiMEkHSyBME sYhSWEk2he6sbMz6gGo4/bxbqsu3JBsUcDOkTgP2xubHUdkc/KySRGLp5COHHtqrdZeB uIbE1tSFUVZgHCMi1EBb7mGNsfQnA/O9AvZDWGq/6zLm+FqneUfnave+9jlauv7R0Ip+ da3mI5IAgGFpdBsl+zfPnMGFLSKdAta1cVLp/E3bvbbhLO7T01/B62eZ9RO7O5XsClUe uCRQ== X-Gm-Message-State: AOAM533fClpMIDaKJBM/HYUVLeDmGbfVvhO9sr/chzL4XK2w8g3yS42q 1DMDXHdo4KQg7MveTlrkWvVl0JJ/+F8= X-Google-Smtp-Source: ABdhPJxXCwhsdgIazrT1N7qJtSzskkqQF2sZ7Joafa398KCbU9OU9nicwPu/u8qFsxe4N8MRzLzpIQ== X-Received: by 2002:a63:f44d:: with SMTP id p13mr11711572pgk.363.1596812128538; Fri, 07 Aug 2020 07:55:28 -0700 (PDT) Received: from gnu-cfl-2.localdomain (c-69-181-90-243.hsd1.ca.comcast.net. [69.181.90.243]) by smtp.gmail.com with ESMTPSA id l22sm11161529pjy.31.2020.08.07.07.55.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 07 Aug 2020 07:55:27 -0700 (PDT) Received: by gnu-cfl-2.localdomain (Postfix, from userid 1000) id 1B54C1A065C; Fri, 7 Aug 2020 07:55:27 -0700 (PDT) Date: Fri, 7 Aug 2020 07:55:27 -0700 From: "H.J. Lu" To: Alan Modra , Nick Clifton Cc: Binutils Subject: [PATCH] nm: Remove --with-symbol-versions Message-ID: <20200807145527.GA679176@gmail.com> References: <20200727134417.638165-1-hjl.tools@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Spam-Status: No, score=-11.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, KAM_STOCKGEN, 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: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Aug 2020 14:55:31 -0000 On Thu, Aug 06, 2020 at 04:33:27AM -0700, H.J. Lu wrote: > On Mon, Jul 27, 2020 at 6:44 AM H.J. Lu wrote: > > > > Since > > > > commit 7e6e972f74aeac0ebdbd95a7f905d871cd2581de > > Author: H.J. Lu > > Date: Tue Mar 24 04:23:11 2020 -0700 > > > > bfd: Display symbol version for nm -D > > > > always displays symbol version for nm, ignore --with-symbol-versions for > > backward compatibility. > > > > binutils/ > > > > PR binutils/26302 > > * nm.c (with_symbol_versions): Removed. > > (long_option_values): Add OPTION_WITH_SYMBOL_VERSIONS. > > (long_options): Update --with-symbol-versions entry. > > (print_symbol): Remove the with_symbol_versions check. > > (main): Add OPTION_WITH_SYMBOL_VERSIONS for backward > > compatibility. > > * doc/binutils.texi: Update --with-symbol-versions documentation. > > > > ld/ > > > > PR binutils/26302 > > * testsuite/ld-elf/pr26302.nd: New file. > > * testsuite/ld-elf/pr26302.ver: Likewise. > > * testsuite/ld-elf/pr26302a.c: Likewise. > > * testsuite/ld-elf/pr26302b.c: Likewise. > > * testsuite/ld-elf/shared.exp: Run binutils/26302 tests. > > https://sourceware.org/pipermail/binutils/2020-July/112556.html > > -- > H.J. I am checking in this patch next Monday if there are no objections. --- Since commit 7e6e972f74aeac0ebdbd95a7f905d871cd2581de Author: H.J. Lu Date: Tue Mar 24 04:23:11 2020 -0700 bfd: Display symbol version for nm -D always displays symbol version for nm, remove --with-symbol-versions and silently accept it for backward compatibility. binutils/ PR binutils/26302 * nm.c (with_symbol_versions): Removed. (long_option_values): Add OPTION_WITH_SYMBOL_VERSIONS. (long_options): Update --with-symbol-versions entry. (print_symbol): Remove the with_symbol_versions check. (main): Add OPTION_WITH_SYMBOL_VERSIONS for backward compatibility. * doc/binutils.texi: Remove --with-symbol-versions. ld/ PR binutils/26302 * testsuite/ld-elf/pr26302.nd: New file. * testsuite/ld-elf/pr26302.ver: Likewise. * testsuite/ld-elf/pr26302a.c: Likewise. * testsuite/ld-elf/pr26302b.c: Likewise. * testsuite/ld-elf/shared.exp: Run binutils/26302 tests. --- binutils/doc/binutils.texi | 10 +--------- binutils/nm.c | 26 +++++++------------------- ld/testsuite/ld-elf/pr26302.nd | 3 +++ ld/testsuite/ld-elf/pr26302.ver | 5 +++++ ld/testsuite/ld-elf/pr26302a.c | 4 ++++ ld/testsuite/ld-elf/pr26302b.c | 7 +++++++ ld/testsuite/ld-elf/shared.exp | 18 ++++++++++++++++++ 7 files changed, 45 insertions(+), 28 deletions(-) create mode 100644 ld/testsuite/ld-elf/pr26302.nd create mode 100644 ld/testsuite/ld-elf/pr26302.ver create mode 100644 ld/testsuite/ld-elf/pr26302a.c create mode 100644 ld/testsuite/ld-elf/pr26302b.c diff --git a/binutils/doc/binutils.texi b/binutils/doc/binutils.texi index 4a11bf1f1a..0822b5c8b3 100644 --- a/binutils/doc/binutils.texi +++ b/binutils/doc/binutils.texi @@ -796,7 +796,7 @@ nm [@option{-A}|@option{-o}|@option{--print-file-name}] [@option{-a}|@option{--d [@option{--plugin} @var{name}] [@option{--no-recurse-limit}|@option{--recurse-limit}]] [@option{--size-sort}] [@option{--special-syms}] - [@option{--synthetic}] [@option{--with-symbol-versions}] [@option{--target=}@var{bfdname}] + [@option{--synthetic}] [@option{--target=}@var{bfdname}] [@var{objfile}@dots{}] @c man end @end smallexample @@ -1130,14 +1130,6 @@ Include synthetic symbols in the output. These are special symbols created by the linker for various purposes. They are not shown by default since they are not part of the binary's original source code. -@item --with-symbol-versions -Enables the display of symbol version information if any exists. The -version string is displayed as a suffix to the symbol name, preceded by -an @@ character. For example @samp{foo@@VER_1}. If the version is -the default version to be used when resolving unversioned references -to the symbol then it is displayed as a suffix preceded by two @@ -characters. For example @samp{foo@@@@VER_2}. - @item --target=@var{bfdname} @cindex object code format Specify an object code format other than your system's default format. diff --git a/binutils/nm.c b/binutils/nm.c index 1b5122d56a..69e697ae92 100644 --- a/binutils/nm.c +++ b/binutils/nm.c @@ -161,7 +161,6 @@ static int show_version = 0; /* Show the version number. */ static int show_synthetic = 0; /* Display synthesized symbols too. */ static int line_numbers = 0; /* Print line numbers for symbols. */ static int allow_special_symbols = 0; /* Allow special symbols. */ -static int with_symbol_versions = 0; /* Include symbol version information in the output. */ static int demangle_flags = DMGL_ANSI | DMGL_PARAMS; @@ -192,7 +191,8 @@ enum long_option_values OPTION_PLUGIN, OPTION_SIZE_SORT, OPTION_RECURSE_LIMIT, - OPTION_NO_RECURSE_LIMIT + OPTION_NO_RECURSE_LIMIT, + OPTION_WITH_SYMBOL_VERSIONS }; static struct option long_options[] = @@ -226,7 +226,8 @@ static struct option long_options[] = {"defined-only", no_argument, &defined_only, 1}, {"undefined-only", no_argument, &undefined_only, 1}, {"version", no_argument, &show_version, 1}, - {"with-symbol-versions", no_argument, &with_symbol_versions, 1}, + {"with-symbol-versions", no_argument, NULL, + OPTION_WITH_SYMBOL_VERSIONS}, {0, no_argument, 0, 0} }; @@ -901,22 +902,6 @@ print_symbol (bfd * abfd, format->print_symbol_info (&info, abfd); - if (with_symbol_versions) - { - const char * version_string = NULL; - bfd_boolean hidden = FALSE; - - if ((sym->flags & (BSF_SECTION_SYM | BSF_SYNTHETIC)) == 0) - version_string = bfd_get_symbol_version_string (abfd, sym, - TRUE, &hidden); - - if (bfd_is_und_section (bfd_asymbol_section (sym))) - hidden = TRUE; - - if (version_string && *version_string != '\0') - printf (hidden ? "@%s" : "@@%s", version_string); - } - if (line_numbers) { static asymbol **syms; @@ -1761,6 +1746,9 @@ main (int argc, char **argv) case OPTION_NO_RECURSE_LIMIT: demangle_flags |= DMGL_NO_RECURSE_LIMIT; break; + case OPTION_WITH_SYMBOL_VERSIONS: + /* Ignored for backward compatibility. */ + break; case 'D': dynamic = 1; break; diff --git a/ld/testsuite/ld-elf/pr26302.nd b/ld/testsuite/ld-elf/pr26302.nd new file mode 100644 index 0000000000..1f2fbdf9a3 --- /dev/null +++ b/ld/testsuite/ld-elf/pr26302.nd @@ -0,0 +1,3 @@ +#... + +U foo@@FOO +#pass diff --git a/ld/testsuite/ld-elf/pr26302.ver b/ld/testsuite/ld-elf/pr26302.ver new file mode 100644 index 0000000000..f2c03ac7a1 --- /dev/null +++ b/ld/testsuite/ld-elf/pr26302.ver @@ -0,0 +1,5 @@ +FOO +{ +global: + foo; +}; diff --git a/ld/testsuite/ld-elf/pr26302a.c b/ld/testsuite/ld-elf/pr26302a.c new file mode 100644 index 0000000000..cd0130cacd --- /dev/null +++ b/ld/testsuite/ld-elf/pr26302a.c @@ -0,0 +1,4 @@ +void +foo (void) +{ +} diff --git a/ld/testsuite/ld-elf/pr26302b.c b/ld/testsuite/ld-elf/pr26302b.c new file mode 100644 index 0000000000..eae278df96 --- /dev/null +++ b/ld/testsuite/ld-elf/pr26302b.c @@ -0,0 +1,7 @@ +extern void foo (void); + +void +bar (void) +{ + foo (); +} diff --git a/ld/testsuite/ld-elf/shared.exp b/ld/testsuite/ld-elf/shared.exp index e9e9012058..014937175f 100644 --- a/ld/testsuite/ld-elf/shared.exp +++ b/ld/testsuite/ld-elf/shared.exp @@ -843,6 +843,24 @@ run_cc_link_tests [list \ {{readelf {--dyn-syms --wide} pr26094-1b.rd}} \ "pr26094-1" \ ] \ + [list \ + "Build pr26302a.so" \ + "-shared -Wl,--version-script=pr26302.ver" \ + "-fPIC" \ + {pr26302a.c} \ + {} \ + "pr26302a.so" + ] \ + [list \ + "Build pr26302b.so" \ + "-shared -Wl,--no-as-needed tmpdir/pr26302a.so" \ + "-fPIC" \ + {pr26302b.c} \ + {{nm {-u} pr26302.nd} \ + {nm {-u -D} pr26302.nd} \ + {nm {-u -D --with-symbol-versions} pr26302.nd}} \ + "pr26302b.so" \ + ] \ ] run_ld_link_tests [list \ -- 2.26.2