From 02d44d76584e4d483fe0fc677c12066ec23d67f4 Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Tue, 4 Apr 2023 08:50:18 +0200 Subject: [PATCH] bfd+ld: when / whether to generate .c files 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). --- bfd/Makefile.am | 2 +- bfd/Makefile.in | 2 +- ld/Makefile.am | 5 +++-- ld/Makefile.in | 5 +++-- ld/deffilep.y | 2 +- ld/ldgram.y | 4 ++-- ld/ldlex.l | 4 ++-- 7 files changed, 13 insertions(+), 11 deletions(-) diff --git a/bfd/Makefile.am b/bfd/Makefile.am index 931b2cbdcd6..099229347b5 100644 --- 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) diff --git a/bfd/Makefile.in b/bfd/Makefile.in index 82aa96f30e5..5be3d1b6e9f 100644 --- 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 diff --git a/ld/Makefile.am b/ld/Makefile.am index 0e9bed88f65..0e025867f5f 100644 --- a/ld/Makefile.am +++ b/ld/Makefile.am @@ -493,7 +493,8 @@ GENERATED_HFILES = ldgram.h ldemul-list.h deffilep.h # 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 diff --git a/ld/Makefile.in b/ld/Makefile.in index 15f88bf606d..ffcb299bda6 100644 --- a/ld/Makefile.in +++ b/ld/Makefile.in @@ -992,7 +992,8 @@ GENERATED_HFILES = ldgram.h ldemul-list.h deffilep.h # 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 diff --git a/ld/deffilep.y b/ld/deffilep.y index 66ce5d589ed..33c8cf35c5c 100644 --- a/ld/deffilep.y +++ b/ld/deffilep.y @@ -1134,7 +1134,7 @@ def_image_name (const char *name, bfd_vma base, int is_dll) 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); diff --git a/ld/ldgram.y b/ld/ldgram.y index 4ced9edf7a3..081176ba0f1 100644 --- 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); } diff --git a/ld/ldlex.l b/ld/ldlex.l index 3b55e794c57..1a6be1b6af2 100644 --- a/ld/ldlex.l +++ b/ld/ldlex.l @@ -489,8 +489,8 @@ V_IDENTIFIER [*?.$_a-zA-Z\[\]\-\!\^\\]([*?.$_a-zA-Z0-9\[\]\-\!\^\\]|::)* 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); %% -- 2.30.2