From patchwork Fri Jan 26 21:46:07 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "H.J. Lu" X-Patchwork-Id: 19520 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7301:2395:b0:106:343:edcb with SMTP id gw21csp166904dyb; Fri, 26 Jan 2024 13:46:24 -0800 (PST) X-Google-Smtp-Source: AGHT+IF4fJQHagDSsd3i5Lzm9YPry4X66kTxR0nj9X3XGkrn+EZXCC3gTKSicAsSGKOFIdfDi+dl X-Received: by 2002:a05:6214:f2d:b0:681:784f:ffaa with SMTP id iw13-20020a0562140f2d00b00681784fffaamr563828qvb.1.1706305584707; Fri, 26 Jan 2024 13:46:24 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1706305584; cv=pass; d=google.com; s=arc-20160816; b=uclcSy5e/n0ECTsfblK+OcldW33pUv8XQFB8XT6oMCtNJ1q+ut2fwcNpjLaeU27lHh 95G5HALDO8hunNiOY0Mi747lTfYE3zqN3C0exaVg0kyzjw+qWluhvUA8XAZiWjiY09Cu HEDaE76iA3c9Em6LLOuO4JvYBSOIpmuE5/uPHXC27acqv9u6C+2NTLc9WI7fa2DKM5Nw cQoXW8fsjrRT8iFt38xjTtGvi3v4+CiRvQLAlPmgFFPBjkhrLdSLj/adqxe/jSV14LJu 8L4pCibehRa/Tz0FsByNqRzeqHCFe9wkZukFHpnidtKuJ31IzuhPTPpneqDzUyVS+jOs HZUQ== 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:to:from:dkim-signature :arc-filter:dmarc-filter:delivered-to; bh=sdK34nGZayjJVCMon/BFy5Q7jigQQ5Mqnk0sHaUlhBI=; fh=NLxAvL/bDfPg4AGOtxqvQlND8vazkZrNzKLY8+LAbBY=; b=MlDDmYlKECI728FRxMJ5HWPao3CcNE9bmTz2QhX7p6QXezfUaO08Sk5etPJWRGPGnV J9r2Gq23KJrFKDKU/zT8Vd5JcIl1Tbqlbmksh/rgJIqZQeNdKNOppML+Hl+IIHoiMXWm KSDO/7hwEB01inRubCr4ds6Smxf0R9bgjL3ihvAqee6IrnINk0UYyiiemnODKL7R23JJ 3otana3QU6rbm5c/kNg7ntPU/IhWbca/Zx4v9WujsOdhRkce6HlhFkfNh2Bp1OnR2dVR gEVqNJW6srys3lDZNW2Be5QVialNdbH2/VkcvPm2Wbpq74Z76v8CDtEqHvAMz4kgDDVc JlIA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=jXaUTQwN; 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"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from server2.sourceware.org (server2.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id fq3-20020a056214258300b0067f0cf9a77asi2322909qvb.77.2024.01.26.13.46.24 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 26 Jan 2024 13:46:24 -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; dkim=pass header.i=@gmail.com header.s=20230601 header.b=jXaUTQwN; 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"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 60174385841E for ; Fri, 26 Jan 2024 21:46:24 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-oo1-xc32.google.com (mail-oo1-xc32.google.com [IPv6:2607:f8b0:4864:20::c32]) by sourceware.org (Postfix) with ESMTPS id 33BB9385841E for ; Fri, 26 Jan 2024 21:46:12 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 33BB9385841E Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 33BB9385841E Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::c32 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1706305574; cv=none; b=Vo1wtawI3sQw2zrJxgvtRDKoXeN0XPhar1oThTHXmkLFN3tLdZJwo1idHeL8dQy9JpVUrLbmZhFk35CsIchjpaPqMHXeeyvvu7PGMDogxf/p2vw3JpBCPsfA+qRWcj5oJDlkjxF94LBUOIXJVlkLiXGrptDtN1F/aVD8tKS+uYE= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1706305574; c=relaxed/simple; bh=cWdk/wim63aMmugirGk4sEtwDOWIiu0tcaOkiDz31Wc=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=nZYu+UtonhDkUJPOFKqizgoW261CAhOJzdw8zTuIxayR0SNDqrJY7L0SXaipSF/Q9tEwoAB4PQKSQjm8Eo/yugqCNnBBzCrejAO4CCL3QnSeSzJ+NQXoPehvpxd+DNV1Aj0to/wMgff/RMawIRK8TOk0fuJSdusggPn2N3reymY= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-oo1-xc32.google.com with SMTP id 006d021491bc7-59927972125so470862eaf.3 for ; Fri, 26 Jan 2024 13:46:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1706305571; x=1706910371; darn=sourceware.org; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to; bh=sdK34nGZayjJVCMon/BFy5Q7jigQQ5Mqnk0sHaUlhBI=; b=jXaUTQwNNtJk5BLvYhl8GFzed5hr7lFRXI6LKBHrIIdfOTixtu6fhIf4fSOPoTPJAP 3tGSRnOBZIsIf7ztdrQLitSzaGQgvSzvEKRy1z+jVw5opbsw7G4+FbGHIrjfXzbi968n GTeyY4LHRgwjdSQNkIkQLiAMzC7Ljt6PWQAay3/1j8OjB7bOsRlSJDVRz51qtwBmi+FK JoE6LhE/xu0gmC4OV0Re9B4EfcvyOi74LCTFRBzd0kye3SQtU8lM4088Nmt/izf4ZPWl tE3zc5PPdZa1OLQnUV3Cekw6/nMOIpUAremRRh67u7FO3Je7HPZ14C8Eh/y3AbY0AiDJ NJZg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706305571; x=1706910371; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=sdK34nGZayjJVCMon/BFy5Q7jigQQ5Mqnk0sHaUlhBI=; b=atxZ3mzaONubm4JfigfkXQIydtGwxOsghYX/CfdMcYhjflfqLXS8P2f96U925Y2Jj1 dmJMPpq4wmURyzPXlMMtNoaQ/sfCKZgWxun278yo/y4hZ3S4Wc2EnXTTuja2OK7c2nXI puIiQyvykz/noPHMrLlZkeHayX8/RuKdFRkfMk1NzUa667H6h8gYMgtfUNgdWd6PiTv0 120KYUk7eWqh1ToHTFdqDxhCJtuhbw+v2HWA/Tn9lXwnTVNOOelM05GLY9AnWUF3pN4m w0MiqDMYBbNAB2cPM+POkBcjQfs4t20CjAZsDRbhxCpPALiEDRtksl60uZFxdgSekiC3 I5Rg== X-Gm-Message-State: AOJu0YwY/0UB9Kk3CJ6D+jDnMvF/7MJXzvTqKmpSvFSqIdBMTz7d7Scv Eo0NL1wOvbL4FeoVDj8ZdiUwtLxZ4dO94Cm7Ko1rIa6qqeiVVFN/sZWTSCvv X-Received: by 2002:a05:6359:459c:b0:176:25ea:ab3 with SMTP id no28-20020a056359459c00b0017625ea0ab3mr342529rwb.51.1706305570973; Fri, 26 Jan 2024 13:46:10 -0800 (PST) Received: from gnu-cfl-3.localdomain ([172.56.169.51]) by smtp.gmail.com with ESMTPSA id p16-20020a63e650000000b005d553239b16sm1557915pgj.20.2024.01.26.13.46.10 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 26 Jan 2024 13:46:10 -0800 (PST) Received: from gnu-cfl-3.. (localhost [IPv6:::1]) by gnu-cfl-3.localdomain (Postfix) with ESMTP id 7F1B1740298 for ; Fri, 26 Jan 2024 13:46:09 -0800 (PST) From: "H.J. Lu" To: binutils@sourceware.org Subject: [PATCH v2 0/2] ld: Output error for warnings with --fatal-warnings Date: Fri, 26 Jan 2024 13:46:07 -0800 Message-ID: <20240126214609.46554-1-hjl.tools@gmail.com> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 X-Spam-Status: No, score=-3017.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, 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: 1789180434251777329 X-GMAIL-MSGID: 1789191084756237050 Changes in v2: 1. Update the expected error in testsuite/ld-elf/fatal-warnings-5.d to allow buffering. 2. Add --no-warn-execstack to testsuite/ld-scripts/defined7.d for targets which check executable stack before checking multiple definition. --- 1. Since --fatal-warnings changes warnings into errors, we should output error, instead of warning, for linker warnings. Add %w to vfinfo to output "warning" if --fatal-warnings isn't used or "error" otherwise. Replace warning with %w in linker warnings. 2. Update _bfd_error_handler to output the warning prefix, which is default to "warning". Add %%w to _bfd_doprnt to output "error", instead of "warning", when --fatal-warnings is used. Update bfd_set_error_handler to allow linker to set the warning prefix to "error" for --fatal-warnings. Call bfd_set_error_handler after parsing all linker command-line arguments so that config.fatal_warnings will be set for --fatal-warnings. H.J. Lu (2): ld: Output error for linker warnings with --fatal-warnings bfd: Output error for linker --fatal-warnings option bfd/archive.c | 2 +- bfd/bfd-in2.h | 3 +- bfd/bfd.c | 34 +++- bfd/binary.c | 2 +- bfd/coff-arm.c | 14 +- bfd/coff-go32.c | 2 +- bfd/coff-mcore.c | 2 +- bfd/coff-sh.c | 14 +- bfd/coff-tic30.c | 2 +- bfd/coff-tic4x.c | 2 +- bfd/coff-tic54x.c | 2 +- bfd/coff-z80.c | 2 +- bfd/coff-z8k.c | 2 +- bfd/coffcode.h | 26 +-- bfd/coffgen.c | 7 +- bfd/cofflink.c | 6 +- bfd/coffswap.h | 2 +- bfd/cpu-arm.c | 2 +- bfd/cpu-m68k.c | 2 +- bfd/ecoff.c | 2 +- bfd/elf-properties.c | 10 +- bfd/elf-s390-common.c | 6 +- bfd/elf.c | 24 +-- bfd/elf32-arc.c | 8 +- bfd/elf32-arm.c | 44 ++--- bfd/elf32-bfin.c | 2 +- bfd/elf32-csky.c | 8 +- bfd/elf32-msp430.c | 2 +- bfd/elf32-nds32.c | 18 +- bfd/elf32-ppc.c | 6 +- bfd/elf32-rl78.c | 2 +- bfd/elf32-rx.c | 6 +- bfd/elf32-score.c | 2 +- bfd/elf32-score7.c | 2 +- bfd/elf32-sh.c | 16 +- bfd/elf32-spu.c | 6 +- bfd/elf32-tic6x.c | 10 +- bfd/elf32-v850.c | 14 +- bfd/elf32-vax.c | 8 +- bfd/elf64-alpha.c | 4 +- bfd/elf64-ia64-vms.c | 8 +- bfd/elf64-ppc.c | 12 +- bfd/elfcode.h | 6 +- bfd/elfcore.h | 2 +- bfd/elflink.c | 36 ++-- bfd/elfnn-aarch64.c | 4 +- bfd/elfnn-loongarch.c | 2 +- bfd/elfnn-riscv.c | 10 +- bfd/elfxx-aarch64.c | 4 +- bfd/elfxx-mips.c | 34 ++-- bfd/elfxx-x86.c | 4 +- bfd/format.c | 7 +- bfd/mmo.c | 2 +- bfd/xcofflink.c | 2 +- ld/emultempl/aix.em | 24 +-- ld/emultempl/armelf.em | 4 +- ld/emultempl/beos.em | 2 +- ld/emultempl/m68hc1xelf.em | 2 +- ld/emultempl/msp430.em | 4 +- ld/emultempl/nto.em | 4 +- ld/emultempl/pe.em | 18 +- ld/emultempl/pep.em | 12 +- ld/emultempl/xtensaelf.em | 6 +- ld/ldelf.c | 20 +- ld/ldelfgen.c | 6 +- ld/ldexp.c | 2 +- ld/ldlang.c | 44 ++--- ld/ldmain.c | 53 +++--- ld/ldmisc.c | 8 +- ld/pdb.c | 246 ++++++++++++------------- ld/pe-dll.c | 2 +- ld/testsuite/ld-elf/fatal-warnings-5.d | 6 + ld/testsuite/ld-elf/note-4.l | 2 + ld/testsuite/ld-elf/shared.exp | 5 + ld/testsuite/ld-i386/pr28894.d | 2 +- ld/testsuite/ld-i386/warn1.d | 2 +- ld/testsuite/ld-scripts/defined.exp | 1 + ld/testsuite/ld-scripts/defined7.d | 3 + 78 files changed, 493 insertions(+), 446 deletions(-) create mode 100644 ld/testsuite/ld-elf/fatal-warnings-5.d create mode 100644 ld/testsuite/ld-elf/note-4.l create mode 100644 ld/testsuite/ld-scripts/defined7.d