From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 72642 invoked by alias); 21 Feb 2020 13:20:51 -0000 Mailing-List: contact binutils-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: binutils-owner@sourceware.org Received: (qmail 72629 invoked by uid 89); 21 Feb 2020 13:20:51 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.3 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.1 spammy=HContent-Transfer-Encoding:8bit X-HELO: mail-pf1-f194.google.com Received: from mail-pf1-f194.google.com (HELO mail-pf1-f194.google.com) (209.85.210.194) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 21 Feb 2020 13:20:49 +0000 Received: by mail-pf1-f194.google.com with SMTP id 185so1205092pfv.3 for ; Fri, 21 Feb 2020 05:20:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=3nCaQdf6gXJwg/rtMAQZA1R7h5BUdwGb90PBQh5pFLQ=; b=D32Au8/NwB7NGv25eD694yIVCIwpukXvAszc/5LzpHLE1PqeNn9pEL//WpKoEfxBlq RCUJa6slWiPM6ETtBCzhEkIqc5LoQkMxdo62wD49Nfg7QT9g8u/vyIIMgJQoBJmd4M9m 1/00bp7DpvShl2EQPczBNp2KzINGPLxVntIsin/nMViV0duNU6X7Yju4JdmXg36TdZm1 l0dh9/I2PdElLjHTKpIXvpfXYdoRgXcHCKN4/3eXJoMBVT47cjWN3eu0NkrxMmgg8AxQ U0WeMDcwglmC0Q008LbFrNmnPPl9yBTMJInp5WUVBnlYnLwAvV2VHymnrHdN3j+/x4xv UUQA== Return-Path: Received: from gnu-cfl-2.localdomain (c-73-93-86-59.hsd1.ca.comcast.net. [73.93.86.59]) by smtp.gmail.com with ESMTPSA id c19sm3024173pfc.144.2020.02.21.05.20.46 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Feb 2020 05:20:47 -0800 (PST) Received: from gnu-cfl-2.hsd1.ca.comcast.net (localhost [IPv6:::1]) by gnu-cfl-2.localdomain (Postfix) with ESMTP id 3ED19C0089 for ; Fri, 21 Feb 2020 05:20:43 -0800 (PST) From: "H.J. Lu" To: binutils@sourceware.org Subject: [PATCH] Don't call lto-wrapper for ar and ranlib Date: Fri, 21 Feb 2020 13:20:00 -0000 Message-Id: <20200221132043.275391-1-hjl.tools@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-IsSubscribed: yes X-SW-Source: 2020-02/txt/msg00510.txt.bz2 Since ar and ranlib don't need to know symbol types to work properly, we should avoid calling lto-wrapper for them to speed them up. bfd/ PR binutils/25584 * plugin.c (need_lto_wrapper_p): New. (bfd_plugin_set_program_name): Add an int argument to set need_lto_wrapper_p. (get_lto_wrapper): Return FALSE if need_lto_wrapper_p isn't set. * plugin.h (bfd_plugin_set_program_name): Add an int argument. binutils/ PR binutils/25584 * ar.c (main): Pass 0 to bfd_plugin_set_program_name. * nm.c (main): Pass 1 to bfd_plugin_set_program_name. --- bfd/plugin.c | 22 ++++++++++++++-------- bfd/plugin.h | 2 +- binutils/ar.c | 2 +- binutils/nm.c | 2 +- 4 files changed, 17 insertions(+), 11 deletions(-) diff --git a/bfd/plugin.c b/bfd/plugin.c index 93d562b9fed..c79468fab87 100644 --- a/bfd/plugin.c +++ b/bfd/plugin.c @@ -147,6 +147,17 @@ struct plugin_list_entry bfd_boolean initialized; }; +static const char *plugin_program_name; +static int need_lto_wrapper_p; + +void +bfd_plugin_set_program_name (const char *program_name, + int need_lto_wrapper) +{ + plugin_program_name = program_name; + need_lto_wrapper_p = need_lto_wrapper; +} + /* Use GCC LTO wrapper to covert LTO IR object to the real object. */ static bfd_boolean @@ -165,6 +176,9 @@ get_lto_wrapper (struct plugin_list_entry *plugin) char dir_seperator = '\0'; char *resolution_file; + if (!need_lto_wrapper_p) + return FALSE; + if (plugin->initialized) { if (plugin->lto_wrapper) @@ -489,14 +503,6 @@ add_symbols (void * handle, return LDPS_OK; } -static const char *plugin_program_name; - -void -bfd_plugin_set_program_name (const char *program_name) -{ - plugin_program_name = program_name; -} - int bfd_plugin_open_input (bfd *ibfd, struct ld_plugin_input_file *file) { diff --git a/bfd/plugin.h b/bfd/plugin.h index 05c3573933d..b2d5e50137f 100644 --- a/bfd/plugin.h +++ b/bfd/plugin.h @@ -21,7 +21,7 @@ #ifndef _PLUGIN_H_ #define _PLUGIN_H_ -void bfd_plugin_set_program_name (const char *); +void bfd_plugin_set_program_name (const char *, int); int bfd_plugin_open_input (bfd *, struct ld_plugin_input_file *); void bfd_plugin_set_plugin (const char *); bfd_boolean bfd_plugin_target_p (const bfd_target *); diff --git a/binutils/ar.c b/binutils/ar.c index 1057db9980e..35dd51e04af 100644 --- a/binutils/ar.c +++ b/binutils/ar.c @@ -725,7 +725,7 @@ main (int argc, char **argv) xmalloc_set_program_name (program_name); bfd_set_error_program_name (program_name); #if BFD_SUPPORTS_PLUGINS - bfd_plugin_set_program_name (program_name); + bfd_plugin_set_program_name (program_name, 0); #endif expandargv (&argc, &argv); diff --git a/binutils/nm.c b/binutils/nm.c index 0ee3f883865..5b386592a61 100644 --- a/binutils/nm.c +++ b/binutils/nm.c @@ -1701,7 +1701,7 @@ main (int argc, char **argv) xmalloc_set_program_name (program_name); bfd_set_error_program_name (program_name); #if BFD_SUPPORTS_PLUGINS - bfd_plugin_set_program_name (program_name); + bfd_plugin_set_program_name (program_name, 1); #endif START_PROGRESS (program_name, 0); -- 2.24.1