From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <3_TICYgcKCIIsgyqxg4muumrk.iushot0zoryyu0xik2gxk.uxm@flex--maskray.bounces.google.com> Received: from mail-pj1-x104a.google.com (mail-pj1-x104a.google.com [IPv6:2607:f8b0:4864:20::104a]) by sourceware.org (Postfix) with ESMTPS id BCC013858430 for ; Tue, 8 Feb 2022 09:08:14 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org BCC013858430 Received: by mail-pj1-x104a.google.com with SMTP id h13-20020a17090ac38d00b001b8d61ec280so939201pjt.1 for ; Tue, 08 Feb 2022 01:08:14 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:message-id:mime-version:subject:from:to:cc; bh=JzRvS2BNtKS90BHYvjxTHT90eBwLydJOmsCm/xi6AzQ=; b=KFFdDVORAotAuZMJCIkLct+rw1LG9hATQvugq1g9lxyILA0yf+jrQqW9n3Jn7SvhDG F3Fu6YO9sqZn3sWTS/MDwrl+wNhGeaIGbi/Lw0mUXhgsej5TdSlKaVfXdCdJROhI71S2 BGFje/ZNAsS6W6dls+uC3kuYrmaM4lo+iBE/9fqYCa1F1ZvRy6YgpFjk+tOHuSahYbll c6uBhmiLyi93hyJfip846q0R1wjUjAbVqDLpT2vhK+7hGcLP+3l6VlCX86Pewb5lfbvL leMAInvBOElFDqidXUhYaqFQwpF6PnpK3s1aYr6JCm4HvY/55S3mU2XjNGvgdxbAy9TK X6Bw== X-Gm-Message-State: AOAM530K1Mhp96uEeFNxyCzB0oh+V1bShw2EfuXtGIrNln3SCACKyeKz 3GRSieN/OGh6yo47fDp5rnB6g9UUCVzCI7wPLHTSz4q/I+C9ijgfisRutCUy5E+dEpYYT6d/a1S 6dkhfMkM0Qicz6dTQjY6Y2eeaDhV1LWzpeTH2BrK21PXbpYR+xlp2OufPTpg7IWbOnA== X-Google-Smtp-Source: ABdhPJzHD95iZp19GML6yZktSAi9uxAup9Y1bzW0rIb/7dU4hsyXxVc7boocYjUs3KWvimw7Os2oNdN1Mk/k X-Received: from maskray1.svl.corp.google.com ([2620:15c:2ce:200:62be:a68f:4356:aef0]) (user=maskray job=sendgmr) by 2002:a17:90b:4b4f:: with SMTP id mi15mr258007pjb.218.1644311293657; Tue, 08 Feb 2022 01:08:13 -0800 (PST) Date: Tue, 8 Feb 2022 01:07:59 -0800 Message-Id: <20220208090759.1115537-1-maskray@google.com> Mime-Version: 1.0 Subject: [PATCH] gold: Remove GNU ld incompatible --[no-]define-common [BZ #28871] From: Fangrui Song To: binutils@sourceware.org, Cary Coutant Cc: Fangrui Song Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-19.6 required=5.0 tests=BAYES_00, DKIMWL_WL_MED, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE, USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) 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: Tue, 08 Feb 2022 09:08:16 -0000 In 2008, 0dfbdef4c43cfe12bb3e2505ebe5acc651a35c98 confused --define-common with -d/FORCE_COMMON_ALLOCATION and implemented --define-common with -d semantics. Just remove the GNU ld incompatible --[no-]define-common. --- gold/gold.cc | 2 +- gold/options.cc | 14 ++++---------- gold/options.h | 9 ++++----- 3 files changed, 9 insertions(+), 16 deletions(-) diff --git a/gold/gold.cc b/gold/gold.cc index 2891d16c7c9..a93489e225e 100644 --- a/gold/gold.cc +++ b/gold/gold.cc @@ -708,7 +708,7 @@ queue_middle_tasks(const General_options& options, // Allocate common symbols. We use a blocker to run this before the // Scan_relocs tasks, because it writes to the symbol table just as // they do. - if (parameters->options().define_common()) + if (parameters->options().dc()) { this_blocker = new Task_token(true); this_blocker->add_blocker(); diff --git a/gold/options.cc b/gold/options.cc index 04be98a3e39..a6c4bda1ae8 100644 --- a/gold/options.cc +++ b/gold/options.cc @@ -1136,16 +1136,10 @@ General_options::finalize() gold_assert(this->strip_debug()); } - // For us, -dc and -dp are synonyms for --define-common. - if (this->dc()) - this->set_define_common(true); - if (this->dp()) - this->set_define_common(true); - - // We also set --define-common if we're not relocatable, as long as - // the user didn't explicitly ask for something different. - if (!this->user_set_define_common()) - this->set_define_common(!this->relocatable()); + // A non-relocatable link always allocates space to COMMON symbols. + // -dc, -d, and -dp can force allocation for a relocatable link. + if (!this->relocatable() || this->d() || this->dp()) + this->set_dc(true); // execstack_status_ is a three-state variable; update it based on // -z [no]execstack. diff --git a/gold/options.h b/gold/options.h index 9509a445e8e..a994bdcf42a 100644 --- a/gold/options.h +++ b/gold/options.h @@ -787,13 +787,12 @@ class General_options // d - DEFINE_bool(define_common, options::TWO_DASHES, 'd', false, - N_("Define common symbols"), - N_("Do not define common symbols in relocatable output")); DEFINE_bool(dc, options::ONE_DASH, '\0', false, - N_("Alias for -d"), NULL); + N_("Allocate space to COMMON symbols for the relocatable link"), NULL); + DEFINE_bool(d, options::ONE_DASH, '\0', false, + N_("Alias for -dc"), NULL); DEFINE_bool(dp, options::ONE_DASH, '\0', false, - N_("Alias for -d"), NULL); + N_("Alias for -dc"), NULL); DEFINE_string(debug, options::TWO_DASHES, '\0', "", N_("Turn on debugging"), -- 2.35.0.263.gb82422642f-goog