From patchwork Fri Mar 31 14:19:21 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 77794 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp600055vqo; Fri, 31 Mar 2023 07:19:37 -0700 (PDT) X-Google-Smtp-Source: AKy350ZYJtuAKbSLu00qJl6HGELth8Ydrexj/ICSXizafE6oc5PqUcqY1UpPC3HzJjVXmlpTXil4 X-Received: by 2002:a17:906:a015:b0:8af:3382:e578 with SMTP id p21-20020a170906a01500b008af3382e578mr9755556ejy.4.1680272377723; Fri, 31 Mar 2023 07:19:37 -0700 (PDT) Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id b19-20020aa7dc13000000b005027766cac8si1951476edu.631.2023.03.31.07.19.37 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 31 Mar 2023 07:19:37 -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; dkim=pass header.i=@sourceware.org header.s=default header.b=LC+LvdXd; arc=fail (signature failed); 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"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 420CD385802F for ; Fri, 31 Mar 2023 14:19:36 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 420CD385802F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1680272376; bh=dhKWn8Z8ULV/vfAw8vI3yMoCAIzpts3UxuN+ixvLT70=; h=Date:To:Cc:Subject:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:List-Subscribe:From:Reply-To:From; b=LC+LvdXdRwAVwr3wKdATS2UA2RpPOkOPTfGsaRSI+3nhfhHbsN6gCoH5jSHxQ4JBc OUW0/K7KidNQP609i5AFmF1r/O0SgXj0rYUqKaoJ69A7YkAvuGQmHVlI+jQD55Ry7k ya6lwgWHJdRHwCnCsZoHMvd4RPUFFLJYg8ZAC4SQ= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR03-AM7-obe.outbound.protection.outlook.com (mail-am7eur03on2043.outbound.protection.outlook.com [40.107.105.43]) by sourceware.org (Postfix) with ESMTPS id 897C63858D28 for ; Fri, 31 Mar 2023 14:19:26 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 897C63858D28 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fe97pVYYwP1oeVIUMiAsoVg5mTdUxCBQ5sbgFUz+EVIqZKt5M+WyBjzDJI8G1vwecbZskMFoNaRag7jlf5ogEwP59JaqJ6MtJbNMq9DCE4Q/9acWz+uS88iS7cEY8Ah3fZjpmD9W6k/EngwVQ4lxZvS2c52D3lxmGPnGBdazcABjkyz/b4XReGTrXpW+WlP9YKer24fTe21lUnVjiMZPZFKvFPbKWvffBMLk6KGd+XY/iO9wJW2shAEEgoM8nyqPNSrdoSzeI+pMWu6udRSCObUzoGLBCPMipNXCuZUkmwmHUbVd/sd1oXmvXMo7azlxsoEE8anpL3FYfH3Twon0ZA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=dhKWn8Z8ULV/vfAw8vI3yMoCAIzpts3UxuN+ixvLT70=; b=ek0icNTwzJAONREp8+1w/nlcH8RtYJx4+BB0ffZ6O7s1viHLcY41yEa9FWUYwBZZGCFfHowqGMc3STe2YTX/DzC441VvrQrutVrPqL7vPILi/iiPgcWOtsqDTTwzQQ2QxDHgQcPtUQAttYaggYaanUXsx5mjLBUaNDhBbfsDoPfSoz7LO2CvsKRrCeQZm4Sj4yN6ksZiJpGI+pM71e5YKgs9qaBav+bLepeBfAbH63WNJXSUW2nRICkWRh9PWlS1TUprTVg2mPzw/SWjUiARTMwkyxqsItXJuEePRMWYNzAv8Oyqp3L7yrZfbXUSq9C+1hn9NcHmOwQmGJzwWNXs/g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by DBBPR04MB7740.eurprd04.prod.outlook.com (2603:10a6:10:1ee::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6254.21; Fri, 31 Mar 2023 14:19:23 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::154e:166d:ec25:531b]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::154e:166d:ec25:531b%6]) with mapi id 15.20.6222.033; Fri, 31 Mar 2023 14:19:23 +0000 Message-ID: Date: Fri, 31 Mar 2023 16:19:21 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.9.0 Content-Language: en-US To: Binutils Cc: Nick Clifton , Alan Modra Subject: [PATCH] bfd+ld: when / whether to generate .c files X-ClientProxiedBy: FR0P281CA0166.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:b4::18) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|DBBPR04MB7740:EE_ X-MS-Office365-Filtering-Correlation-Id: 79e1f6ab-7704-43d9-1f0e-08db31f2ecd5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: HXhpvs8wA+1mnUcRckp1ONFthqrp6LkGjMy4AUyh0xOmr60p3aP9Kb+oXNZpyrFi6LIdhDK4LcFJVTUdv1+Ykpc6/Rv+ivPgZvauwsXq1hFndcyPU58JSqfv/sAq53dUSsQGPglSrz43txi2OJ+K2ltUvQuv3Wsy7lnul/XwaCFDyU05c3l389SGhepXdHBU6bPZIclydJAizfcT3gNwH2R8zaobPGoN5rpR2gwNn1IPcIjp8A+bRrHL+LTbd+BNcG5yesVBZq1uQ/s7ymlVuFxmEzlcx93srn1yH3iBf8vxhy88RELSq0F4q5/DoXVuUkctHdRwjapylLn/4E2MrvME+Z5uHvOYIzrKoLwAKJKz4w+3ldmbnCkWb4B2afajKtigLo2gPi8ex4vTi05mV6ZV2fistXaVD3HHz884wocXd9yi2jjDWTdREuGimKN+qu6zWiwrLQH6sTHYFPzqCJtTfVl0Gg/MxzAnAZt3LWoq71L5hZe42cfnYmHXyFl35B4xg7XxqLYCzwqJ+N4oyJEY1R7jdTntjfDBQU75HgQ9a2ba9/RAgbMVYyH63OA3jzrnnSCI6FB4s1bkPMOBz86sIpL4LKxerd33SET8/KYhiRX2fXbWkifyilS2PSm4DOMqps/S6rVuqWQsKAXPW22Kz2+zKj1oTntFVhPpzf+Ie1CWNkEDOasLpc9viTkX X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VE1PR04MB6560.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(136003)(346002)(366004)(39860400002)(376002)(396003)(451199021)(36756003)(2616005)(86362001)(31696002)(2906002)(31686004)(478600001)(6512007)(186003)(83380400001)(6506007)(26005)(316002)(66476007)(66946007)(6916009)(8676002)(41300700001)(8936002)(54906003)(66556008)(4326008)(38100700002)(5660300002)(6486002)(142923001)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?YojUdtjfpakQ5lygNNpRvQBJfLba?= =?utf-8?q?pCoKeHJV7nx/v7U8/xqw3RK9kHHJRZJoL4oTxwrS4p4gDOjpyRwS+i8MFFIQCl3ft?= =?utf-8?q?GIT9PYi7N5nLm7RbsfnelZHKSlFa/ORGAWpsqd8VxAP4mXWWFfzM7hNvaF7z3chqJ?= =?utf-8?q?PNYBiYu/MPmzQw/fZMcmwIOq8sTlAMxUYaB/A7rNE8kCMMNTjlIE4gw5mx6+QxmfE?= =?utf-8?q?4bqINYAxbBLX6x2iVocWzipup/dfgQ7g9rKmUVtcd0BP0t62+Uoka7ctSlbod5Qfm?= =?utf-8?q?a6ZFApfjPUo5uzZwNRdz5W6xZVSBUcxKmWPMGfdYPysv9quLnE6l1TQT5p1B1KMef?= =?utf-8?q?rbV+pDGJOoJBuZtzJV3OW2sUsQccVL4FuGtwb4W97PF5gS5/1U5EpWBScy11ll7f5?= =?utf-8?q?1kt3YrJPYzRsn8FnmqFFFUusCT47WRwYQrdObDaX6rYle34YlsQZ+QSwmpvYIM/JE?= =?utf-8?q?5vOVoTtxh36X/PGRlbF1Gte8C2F/Gu6dojiypOSFnaD+pFC14VUd1HULrqPBQStpC?= =?utf-8?q?sAxcJ/DUxs2d2JdYMZo0GMaHPX5Q/aJxNaJlCz3FcbSiQ5fMc/vc2HCR7zRObATlC?= =?utf-8?q?raBgFKfGY/rEzsDPLlU4z1TIPiSZlD+638vdGu49C4C1dxaZGEXPovcg1siK1hAOr?= =?utf-8?q?EIcUCqF7FHFgpGiyqqPE6zdD+iFRnLVwR88gFvvO7eTx2Vaa8DSuj/i6PSETOceUW?= =?utf-8?q?wtpz3GymJa9LbOIIuaIXrgIdFtve4b9X60Dan0tFQXzF7p2lU/JoNfV88eNCTj7mz?= =?utf-8?q?0w2uiWMnK5HU9W5FdbOHj6Kc6RnNlZJHzAhTxyuWShSP5NUTZ322vJlO1dcd2mewB?= =?utf-8?q?njhP+vUGjl7mRPmxDsFaej0vtGYB1mmj1rCxLSrn92Rnt9upacyNqN/ILtHSawSZV?= =?utf-8?q?86BDY/YPmgGZrVGtPm7vPO+O9QtGkQGRuOA1pgsJQxDhj+rVGhyMxYavTmXcyfojF?= =?utf-8?q?XVk9mLJs1x8E2HcNkQifVoP+6xmFduedgJnBJDnPQTWfDO+MLhXOU03+xUNvg8k+i?= =?utf-8?q?QqKj6RGpNUjypE6jPBwN5JSSuxYo1DhMJM4eL1vH7wvauznHpdiWZajyUvCRDesZv?= =?utf-8?q?TrLmMiJyW34PSmHsYJlh/tOOa1wGou2w8gkQvHT05DfI8Ei8yR9vqi3EBJ0Z423lT?= =?utf-8?q?DKDOJK+L2/vlZWoncVnAATctGFnQj7X/mH2OQV8Uo8ny6NxsWM0KSjuamLRlMwCZq?= =?utf-8?q?FMy0FKIQd5yVQP8il4P0xnABw6AOSU3ZtoqgZeHxsdlvq993U5tIEknKfm0cwaWkT?= =?utf-8?q?S4S4KAqB9lYRXRIoY7qQ1EDbP4oqEluzUn/ergKgZ7Yt0CyEeOgbdN1P0fgapB3oO?= =?utf-8?q?/pJFyiPIlKDg414Ftaxv7r0Uq9gXGeJGgdelszKqD1Rq5roYopFrsX3xGgLtORhkd?= =?utf-8?q?yseC8S3ADn2bPx3zeo6x57gkbbFxN4bIfbMk/EXVFkSSwDZ43dO6TFG4EZdzfswBJ?= =?utf-8?q?Y80sNzBuI1w1AaXvXkNOHhx1XJFK8lOmPdVYpXmiPKnfHzQ239F+c8HiersqkskfH?= =?utf-8?q?efGdO6/2NCN8?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 79e1f6ab-7704-43d9-1f0e-08db31f2ecd5 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Mar 2023 14:19:22.9728 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: m0mTuF6ZqkYNbCIH4nRiCqX4EE69es2M8LyesEpEBg37TWbxYRh5w6MPx/fXzDTiIKhZ3PRscW6fMDxzQvgCLA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR04MB7740 X-Spam-Status: No, score=-3028.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, T_FILL_THIS_FORM_SHORT 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: , X-Patchwork-Original-From: Jan Beulich via Binutils From: Jan Beulich Reply-To: Jan Beulich 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?1761893288580273832?= X-GMAIL-MSGID: =?utf-8?q?1761893288580273832?= Having been irritated by seeing bfd/elf{32,64}-aarch64.c to be re- generated in x86-only builds, I came across 769a27ade588 ("Re: bfd BLD-POTFILES.in dependencies"). I think this went slightly too far, as outside of maintainer mode dependencies will cause the subset of files to be (re-)generated which are actually needed for the build. Generating them all is only needed when wanting to update certain files under bfd/po/, i.e. in maintainer mode. In the course of looking around in an attempt to try to understand how things are meant to work, I further noticed that ld has got things slightly wrong too: BLD-POTFILES.in depending on $(BLD_POTFILES) isn't quite right (the output doesn't change when any of the enumerated files changes; it's the mere presence which matters); like in bfd it looks like we would better extend BUILT_SOURCES accordingly. Furthermore it became apparent that ld fails to enumerate the .c files generated from the .l and .y ones. While in their absence it was benign whether translatable strings in the source files were actually marked as such, this now becomes relevant. Mark respective strings at the same time, but skipping ones which look to be of interest for debugging purposes only (e.g. such used by printf() enclosed in #ifdef TRACE). --- a/bfd/Makefile.am +++ b/bfd/Makefile.am @@ -721,7 +721,7 @@ BUILD_HFILES = \ bfdver.h elf32-target.h elf64-target.h targmatch.h # Ensure they are built early: -BUILT_SOURCES = $(BUILD_HFILES) $(BUILD_CFILES) +BUILT_SOURCES = $(BUILD_HFILES) @MAINT@ $(BUILD_CFILES) HFILES = $(SOURCE_HFILES) $(BUILD_HFILES) --- a/bfd/Makefile.in +++ b/bfd/Makefile.in @@ -1174,7 +1174,7 @@ BUILD_HFILES = \ # Ensure they are built early: -BUILT_SOURCES = $(BUILD_HFILES) $(BUILD_CFILES) +BUILT_SOURCES = $(BUILD_HFILES) @MAINT@ $(BUILD_CFILES) HFILES = $(SOURCE_HFILES) $(BUILD_HFILES) BFD_H_DEPS = $(INCDIR)/ansidecl.h $(INCDIR)/symcat.h $(INCDIR)/diagnostics.h LOCAL_H_DEPS = libbfd.h sysdep.h config.h --- a/ld/Makefile.am +++ b/ld/Makefile.am @@ -493,7 +493,8 @@ GENERATED_HFILES = ldgram.h ldemul-list. # Require an early dependency on the generated headers, as the dependency # tracking will not cause them to be built beforehand. -BUILT_SOURCES = $(GENERATED_HFILES) +BUILT_SOURCES = $(GENERATED_HFILES) @MAINT@ $(GENERATED_CFILES) \ + $(ALL_EMULATION_SOURCES) $(ALL_64_EMULATION_SOURCES) OFILES = ldgram.@OBJEXT@ ldlex-wrapper.@OBJEXT@ lexsup.@OBJEXT@ ldlang.@OBJEXT@ \ mri.@OBJEXT@ ldctor.@OBJEXT@ ldmain.@OBJEXT@ plugin.@OBJEXT@ \ @@ -548,7 +549,7 @@ po/SRC-POTFILES.in: @MAINT@ Makefile for f in $(SRC_POTFILES); do echo $$f; done | LC_ALL=C sort > $@-tmp \ && mv $@-tmp $(srcdir)/po/SRC-POTFILES.in -po/BLD-POTFILES.in: @MAINT@ Makefile $(BLD_POTFILES) +po/BLD-POTFILES.in: @MAINT@ Makefile for f in $(BLD_POTFILES); do echo $$f; done | LC_ALL=C sort > $@-tmp \ && mv $@-tmp $(srcdir)/po/BLD-POTFILES.in --- a/ld/Makefile.in +++ b/ld/Makefile.in @@ -992,7 +992,8 @@ GENERATED_HFILES = ldgram.h ldemul-list. # Require an early dependency on the generated headers, as the dependency # tracking will not cause them to be built beforehand. -BUILT_SOURCES = $(GENERATED_HFILES) +BUILT_SOURCES = $(GENERATED_HFILES) @MAINT@ $(GENERATED_CFILES) \ + $(ALL_EMULATION_SOURCES) $(ALL_64_EMULATION_SOURCES) OFILES = ldgram.@OBJEXT@ ldlex-wrapper.@OBJEXT@ lexsup.@OBJEXT@ ldlang.@OBJEXT@ \ mri.@OBJEXT@ ldctor.@OBJEXT@ ldmain.@OBJEXT@ plugin.@OBJEXT@ \ ldwrite.@OBJEXT@ ldexp.@OBJEXT@ ldemul.@OBJEXT@ ldver.@OBJEXT@ ldmisc.@OBJEXT@ \ @@ -2288,7 +2289,7 @@ po/SRC-POTFILES.in: @MAINT@ Makefile for f in $(SRC_POTFILES); do echo $$f; done | LC_ALL=C sort > $@-tmp \ && mv $@-tmp $(srcdir)/po/SRC-POTFILES.in -po/BLD-POTFILES.in: @MAINT@ Makefile $(BLD_POTFILES) +po/BLD-POTFILES.in: @MAINT@ Makefile for f in $(BLD_POTFILES); do echo $$f; done | LC_ALL=C sort > $@-tmp \ && mv $@-tmp $(srcdir)/po/BLD-POTFILES.in --- a/ld/deffilep.y +++ b/ld/deffilep.y @@ -1134,7 +1134,7 @@ def_image_name (const char *name, bfd_vm const char* image_name = lbasename (name); if (image_name != name) - einfo ("%s:%d: Warning: path components stripped from %s, '%s'\n", + einfo (_("%s:%d: Warning: path components stripped from %s, '%s'\n"), def_filename, linenumber, is_dll ? "LIBRARY" : "NAME", name); free (def->name); --- a/ld/ldgram.y +++ b/ld/ldgram.y @@ -720,7 +720,7 @@ length: fill_exp: mustbe_exp { - $$ = exp_get_fill ($1, 0, "fill value"); + $$ = exp_get_fill ($1, 0, _("fill value")); } ; @@ -1512,7 +1512,7 @@ yyerror(arg) einfo (_("%P:%s: file format not recognized; treating as linker script\n"), ldlex_filename ()); if (error_index > 0 && error_index < ERROR_NAME_MAX) - einfo ("%F%P:%pS: %s in %s\n", NULL, arg, error_names[error_index - 1]); + einfo (_("%F%P:%pS: %s in %s\n"), NULL, arg, error_names[error_index - 1]); else einfo ("%F%P:%pS: %s\n", NULL, arg); } --- a/ld/ldlex.l +++ b/ld/ldlex.l @@ -489,8 +489,8 @@ V_IDENTIFIER [*?.$_a-zA-Z\[\]\-\!\^\\]([ return END; } -. lex_warn_invalid (" in script", yytext); -. lex_warn_invalid (" in expression", yytext); +. lex_warn_invalid (_(" in script"), yytext); +. lex_warn_invalid (_(" in expression"), yytext); %%