From patchwork Thu May 11 10:03:54 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: mengqinggang X-Patchwork-Id: 92467 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp4247348vqo; Thu, 11 May 2023 03:04:16 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7UYHsV6t455uvVxxaoRZN2S+MFFwR6+5EPfdggKjin2P1pysCD8VWISqmRcNaJOlYTwV/C X-Received: by 2002:aa7:d8c7:0:b0:50c:160d:f652 with SMTP id k7-20020aa7d8c7000000b0050c160df652mr16985828eds.8.1683799456554; Thu, 11 May 2023 03:04:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1683799456; cv=none; d=google.com; s=arc-20160816; b=iTdJvQeSa/YquvyGKc0NoMBPlqbmx9SEp7k//RuDeCjd8mbkopaC3/GCDvZwOlg548 U9xbIf8yIYcE2HiZInXWWqxT4IQnhu2vUxfJKjSnhjj81+SaPcAKOUCp/jwaMuO+0e2c v7VUeixuPesuI4rMIfwwTFebrLxQePTwXVXds2ny+4KhLs5gzB/mhOqecCfi2FTx9Npt UMQGyS3p/cIk8AwGBzJZajE/SlwuOYWqRhMXccY4E+oUBwhLQ6vPyxRmJPkmI52bD7y5 pwUwBmqANupeVfa7do9zfX69Ac182+60eRZ4Bp6Ak59l1o/WFgiMFl/eRkfJcKbCwvHr jzEQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:message-id:date:subject:cc:to:from:dmarc-filter :delivered-to; bh=cIgecISoxcRGRbyEBaQqG+36is9q1SFlBqJ/67whCGI=; b=gUlAarPlb0gA14Rpf2cNo1+lEihAZOYbRBhUtyWvPUWvRmGvrd+p0WP7pTXB82Uv00 yL6nuQvwjALn48AwwEXtk/uYWXbyAAOzk3IpDkuDiQkctsZ7t/Q+jQMtWFshww2GcJ6M sZ1BP+vE7oTZi5b4HLl2Rh9Wuz8JGo6SqKs1lDunWmbGxO+Q2gQufbCMyxyYDLRPCT4W 1JgIU4wmMs1kXO/sqlssYR0xwVSvoKQE20unq1ckk0mEsIK3JjoHUQtvejKRRw8X1Lu8 TRkyl1+gRFt3MPmCDl5jXTjWmrrgBJfQCRlD6EtDn6PHg/VA8qDcz0lcPvlw/dre2M2B 83jw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id w16-20020a056402129000b00506b1dfe2f9si4821305edv.635.2023.05.11.03.04.16 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 May 2023 03:04:16 -0700 (PDT) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id CE94B3856DDF for ; Thu, 11 May 2023 10:04:14 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from loongson.cn (mail.loongson.cn [114.242.206.163]) by sourceware.org (Postfix) with ESMTP id 88B893858C5F for ; Thu, 11 May 2023 10:04:07 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 88B893858C5F Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=loongson.cn Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=loongson.cn Received: from loongson.cn (unknown [10.2.5.5]) by gateway (Coremail) with SMTP id _____8BxZ+mTvVxkfbcHAA--.12934S3; Thu, 11 May 2023 18:04:03 +0800 (CST) Received: from 5.5.5 (unknown [10.2.5.5]) by localhost.localdomain (Coremail) with SMTP id AQAAf8Axmr2MvVxkA6BVAA--.20899S2; Thu, 11 May 2023 18:04:02 +0800 (CST) From: mengqinggang To: binutils@sourceware.org Cc: xuchenghua@loongson.cn, chenglulu@loongson.cn, liuzhensong@loongson.cn, xry111@xry111.site, i.swmail@xen0n.name, maskray@google.com, mengqinggang Subject: [PATCH] LoongArch: Fix PLT entry generate bug Date: Thu, 11 May 2023 18:03:54 +0800 Message-Id: <20230511100354.3995358-1-mengqinggang@loongson.cn> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 X-CM-TRANSID: AQAAf8Axmr2MvVxkA6BVAA--.20899S2 X-CM-SenderInfo: 5phqw15lqjwttqj6z05rqj20fqof0/ X-Coremail-Antispam: 1Uk129KBjvJXoW7Kr17Jr1fWw47GF17uw1Utrb_yoW8Cw1kpa sFvrnYkF18tFn7G34DX3yrXFnI9FZ29FZrKa4xXwnayrZFgrWkXw1FqrW7WF1DJ3yrW39I qr18Aw45ZF4SkrDanT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUj1kv1TuYvTs0mT0YCTnIWj qI5I8CrVACY4xI64kE6c02F40Ex7xfYxn0WfASr-VFAUDa7-sFnT9fnUUIcSsGvfJTRUUU b7kYFVCjjxCrM7AC8VAFwI0_Jr0_Gr1l1xkIjI8I6I8E6xAIw20EY4v20xvaj40_Wr0E3s 1l1IIY67AEw4v_JrI_Jryl8cAvFVAK0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28EF7xv wVC0I7IYx2IY67AKxVW5JVW7JwA2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxVW8JVWxJwA2z4 x0Y4vEx4A2jsIE14v26r4UJVWxJr1l84ACjcxK6I8E87Iv6xkF7I0E14v26F4UJVW0owAS 0I0E0xvYzxvE52x082IY62kv0487Mc804VCY07AIYIkI8VC2zVCFFI0UMc02F40EFcxC0V AKzVAqx4xG6I80ewAv7VC0I7IYx2IY67AKxVWUGVWUXwAv7VC2z280aVAFwI0_Jr0_Gr1l Ox8S6xCaFVCjc4AY6r1j6r4UM4x0Y48IcxkI7VAKI48JMxAIw28IcxkI7VAKI48JMxC20s 026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAFwI0_Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_ JrI_JrWlx4CE17CEb7AF67AKxVWUtVW8ZwCIc40Y0x0EwIxGrwCI42IY6xIIjxv20xvE14 v26r1j6r1xMIIF0xvE2Ix0cI8IcVCY1x0267AKxVWUJVW8JwCI42IY6xAIw20EY4v20xva j40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Jr0_Gr1lIxAIcVC2z280aVCY1x0267AKxVWUJV W8JbIYCTnIWIevJa73UjIFyTuYvjxUzZ2-UUUUU X-Spam-Status: No, score=-11.9 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, KAM_STOCKGEN, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) 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: , Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1765591699176995400?= X-GMAIL-MSGID: =?utf-8?q?1765591699176995400?= If a function symbol only get its address by la.global, without directly called by bl instruction, the PLT entry is not required. bfd/ChangeLog: * elfnn-loongarch.c (loongarch_elf_adjust_dynamic_symbol): Fix PLT entry generate bug. ld/ChangeLog: * testsuite/ld-elf/shared.exp: Clear xfail for LoongArch. --- bfd/elfnn-loongarch.c | 4 +--- ld/testsuite/ld-elf/shared.exp | 3 ++- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/bfd/elfnn-loongarch.c b/bfd/elfnn-loongarch.c index b0f9b6ec69e..3fb74edb45c 100644 --- a/bfd/elfnn-loongarch.c +++ b/bfd/elfnn-loongarch.c @@ -980,7 +980,7 @@ loongarch_elf_adjust_dynamic_symbol (struct bfd_link_info *info, (although we could actually do it here). */ if (h->type == STT_FUNC || h->type == STT_GNU_IFUNC || h->needs_plt) { - if (h->plt.refcount < 0 + if (h->plt.refcount <= 0 || (h->type != STT_GNU_IFUNC && (SYMBOL_REFERENCES_LOCAL (info, h) || (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT @@ -993,8 +993,6 @@ loongarch_elf_adjust_dynamic_symbol (struct bfd_link_info *info, h->plt.offset = MINUS_ONE; h->needs_plt = 0; } - else - h->needs_plt = 1; return true; } diff --git a/ld/testsuite/ld-elf/shared.exp b/ld/testsuite/ld-elf/shared.exp index db9d71398de..1eef9f45667 100644 --- a/ld/testsuite/ld-elf/shared.exp +++ b/ld/testsuite/ld-elf/shared.exp @@ -504,7 +504,8 @@ run_ld_link_tests [list \ # but that is just an optimization so don't complain loudly. setup_xfail *-*-* clear_xfail alpha-*-* bfin-*-linux* csky-*-* frv-*-* hppa*-*-* i?86-*-* -clear_xfail ia64-*-* microblaze-*-* powerpc*-*-* x86_64-*-* xtensa-*-* +clear_xfail ia64-*-* loongarch*-*-* microblaze-*-* powerpc*-*-* x86_64-*-* +clear_xfail xtensa-*-* run_ld_link_tests { {"pr22374 function pointer initialization" "" "tmpdir/pr22374.so" "" "pr22374a.s"