From patchwork Mon Feb 26 03:11:35 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: ticat_fp X-Patchwork-Id: 206191 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:a81b:b0:108:e6aa:91d0 with SMTP id bq27csp1843506dyb; Sun, 25 Feb 2024 19:11:52 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCWNwVjZ6csPil910Cnrpn4DnzeYO0FbDGXWzC36Przk9KWs2pGTUEb//+PPXSMRtmA6unHvj8xINopOnXfKxzBpidtzjw== X-Google-Smtp-Source: AGHT+IEl+fUEZYTi3aATDB9D3+74lcXlwv+RbztdGFUtH1fEreim2Xie77zdZicBlOQ6gXtIGqC5 X-Received: by 2002:a05:620a:4da:b0:787:a61b:2542 with SMTP id 26-20020a05620a04da00b00787a61b2542mr8975825qks.32.1708917112162; Sun, 25 Feb 2024 19:11:52 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1708917112; cv=pass; d=google.com; s=arc-20160816; b=zqXf1675dXG7k19sw1fItc9MPqNXGIKx9+9fJd8tRfnce18LKn6PpTkjSrSZpE4qfe CbOSN5d+ib8Z5M6o3f66hR3g3BhuHwULgE5qZI0sDFRkA8kKwq7DFyaAEZ7VHorNOD2Q tQyyHhSJMyTFTtjgIcN0KS2WWd7WLpGU2TW2YJxiCuas0QVtX6ph8nm10TjwOYgAZMoV PAXhnSKNYy3jGq0lzHJEFxNcgzW/MuEI1UdrzcLfRZOdzgMmiaCF7xfwkd2fQYK7ryiJ 668Sln4fbqbwHABiTYZrIFAmAsJ/TgsOqXFtp7noCg4Rve5VEUt6I3+s4fc/ZwK+6U/r ERUQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=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:arc-filter :dmarc-filter:delivered-to; bh=CL+3QdonpFkrOFeKzBCNiHXmcR2aInovfdc4TgAg9VE=; fh=vYGW9jiqO4j41smvu9gYbqTjaDP7qlm/xe0MLJWuEmc=; b=lfRiemfGm87Y//2ALrnn/2piEbOHrcnhRKvXj4QJOrfo3gAWiZWO32TENu55jMagqp KHltDktiN3KETDuyiGZe1jC/XB+L2f6udgzdE3a7cr5fcEIB4BHrTiidYytUUGYAqSpC bT9R0J2NYjNc4wf8wqYmdligf/NMeo4zy0cGPF4gcrrIodzb2amWHXQ7YqBdOok6DLMD t+zxuP/P5SC3HCatSoYaPW4N9QRbAhcXM0mhmzRFVZ/O9EGKqV8t4xB9d7MmHxWsa1hC QXPn419ZYzaICuj30QuGgy7L0ioO4tjre+IvWHYLQlclDt9gmzrPHSSC10nistdZSPg3 a6pQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; arc=pass (i=1); spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from server2.sourceware.org (server2.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id bq7-20020a05620a468700b00787bc4464f4si4627948qkb.263.2024.02.25.19.11.52 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 25 Feb 2024 19:11:52 -0800 (PST) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; arc=pass (i=1); spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 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 D6B6A3858C24 for ; Mon, 26 Feb 2024 03:11:51 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail.loongson.cn (mail.loongson.cn [114.242.206.163]) by sourceware.org (Postfix) with ESMTP id A70283858D1E for ; Mon, 26 Feb 2024 03:11:39 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A70283858D1E Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=loongson.cn Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=loongson.cn ARC-Filter: OpenARC Filter v1.0.0 sourceware.org A70283858D1E Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=114.242.206.163 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1708917102; cv=none; b=JRfdL6MQQlb+mGvJkqzDo7FWpewXL/FY2JNrSAycSENrO6tTH0tY33XbGfu3yFrGH+QzY9w2xXVa5YfeiOF3RUqXwV+jvlu9QuFhmR9YJAoC0yM5ALQ4xHg5EPrd3wNEKcmWcA4Ww0ez5KYQ8jMZ8JvgURl7j9sPT/duPC5rt9Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1708917102; c=relaxed/simple; bh=linGKcZpP1E55E2EiOD2iTdJmklCIZFIJZThknZ4pRQ=; h=From:To:Subject:Date:Message-Id:MIME-Version; b=I2F+6LGjamsSWzMIc1V2Egqi1d53ZuyB5smFvSaoQGJGFC2gJijb6Jh5XvwMQ9V6pI5J8fPyRPYydiXcxbXEENZl+QZ24zwvQZ4z7VTxjDAkPM7djFk6R+d/b5F23kazb1zctBQiELzgSy9GvXosJCd+6WIG4MS6sA+c41rmpEc= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from loongson.cn (unknown [111.9.175.10]) by gateway (Coremail) with SMTP id _____8CxWOhpAdxlP2sRAA--.25000S3; Mon, 26 Feb 2024 11:11:37 +0800 (CST) Received: from loongson.localdomain (unknown [111.9.175.10]) by localhost.localdomain (Coremail) with SMTP id AQAAf8AxX89nAdxl0DtEAA--.47869S2; Mon, 26 Feb 2024 11:11:37 +0800 (CST) From: ticat_fp To: binutils@sourceware.org Cc: mengqinggang@loongson.cn, xry111@xry111.site Subject: [PATCH v2] LoongArch: Modify inconsistent behavior of ld with --unresolved-symbols=ignore-all Date: Mon, 26 Feb 2024 11:11:35 +0800 Message-Id: <20240226031135.841416-1-fanpeng@loongson.cn> X-Mailer: git-send-email 2.33.0 MIME-Version: 1.0 X-CM-TRANSID: AQAAf8AxX89nAdxl0DtEAA--.47869S2 X-CM-SenderInfo: xidq1vtqj6z05rqj20fqof0/1tbiAQATEmXa+mQDHwABs8 X-Coremail-Antispam: 1Uk129KBj93XoW7KFyxKw13Aw13Gr45KFyDurX_yoW8GFykpa yS9w4vgF4rAw4fWanFq3yUuFnxK3srWr45tF42qF4v9F4UC347XF15tr4ruay5ta48JFZF vw18tay5ZF18ZabCm3ZEXasCq-sJn29KB7ZKAUJUUUUU529EdanIXcx71UUUUU7KY7ZEXa sCq-sGcSsGvfJ3Ic02F40EFcxC0VAKzVAqx4xG6I80ebIjqfuFe4nvWSU5nxnvy29KBjDU 0xBIdaVrnRJUUUkYb4IE77IF4wAFF20E14v26r1j6r4UM7CY07I20VC2zVCF04k26cxKx2 IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48v e4kI8wA2z4x0Y4vE2Ix0cI8IcVAFwI0_Jr0_JF4l84ACjcxK6xIIjxv20xvEc7CjxVAFwI 0_Gr0_Cr1l84ACjcxK6I8E87Iv67AKxVWxJVW8Jr1l84ACjcxK6I8E87Iv6xkF7I0E14v2 6r4UJVWxJr1le2I262IYc4CY6c8Ij28IcVAaY2xG8wAqjxCEc2xF0cIa020Ex4CE44I27w Aqx4xG64xvF2IEw4CE5I8CrVC2j2WlYx0E2Ix0cI8IcVAFwI0_Jr0_Jr4lYx0Ex4A2jsIE 14v26r1j6r4UMcvjeVCFs4IE7xkEbVWUJVW8JwACjcxG0xvY0x0EwIxGrwCF04k20xvY0x 0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F40E14v26r1j6r18MI8I3I0E 7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_Jrv_JF1lIxkGc2Ij64vIr41lIxAIcV C0I7IYx2IY67AKxVWUJVWUCwCI42IY6xIIjxv20xvEc7CjxVAFwI0_Jr0_Gr1lIxAIcVCF 04k26cxKx2IYs7xG6r1j6r1xMIIF0xvEx4A2jsIE14v26r1j6r4UMIIF0xvEx4A2jsIEc7 CjxVAFwI0_Jr0_GrUvcSsGvfC2KfnxnUUI43ZEXa7IU1CPfJUUUUU== X-Spam-Status: No, score=-13.0 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, SPF_HELO_NONE, 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.30 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 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1791929469728270866 X-GMAIL-MSGID: 1791929469728270866 Remove duplicated check when producing executable files that reference external symbols defined in other files. RELOC_FOR_GLOBAL_SYMBOL will check it. Testcase is: resolv.c: int main(int argc, char *argv[]) { return argc; } t.c: extern const struct my_struct ms1; static const struct my_struct *ms = &ms1; t.h: typedef struct my_struct { char *str; int i; } my_struct; Compiling and linking command with: gcc t.c -c ; gcc resolv.c -c gcc resolv.o t.o -o resolv -Wl,--unresolved-symbols=ignore-all Got error as: ~/install/usr/bin/ld: t.o:(.data.rel+0x0): undefined reference to `ms1' collect2: error: ld returned 1 exit status --- bfd/elfnn-loongarch.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/bfd/elfnn-loongarch.c b/bfd/elfnn-loongarch.c index 1895699af06..e475f2b5e64 100644 --- a/bfd/elfnn-loongarch.c +++ b/bfd/elfnn-loongarch.c @@ -2866,14 +2866,7 @@ loongarch_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info, else if (resolved_dynly) { if (h->dynindx == -1) - { - if (h->root.type == bfd_link_hash_undefined) - (*info->callbacks->undefined_symbol) - (info, name, input_bfd, input_section, - rel->r_offset, true); - - outrel.r_info = ELFNN_R_INFO (0, r_type); - } + outrel.r_info = ELFNN_R_INFO (0, r_type); else outrel.r_info = ELFNN_R_INFO (h->dynindx, r_type);