bfd targmatch.h makefile rule
Alan Modra
amodra@gmail.com
Fri May 6 03:50:59 GMT 2022
I hit this just now with a make -j build after touching config.bfd.
mv: cannot stat 'targmatch.new': No such file or directory
make[2]: *** [Makefile:2336: targmatch.h] Error 1
make[2]: *** Waiting for unfinished jobs....
Fix that by not removing the target of the rule, a practice that seems
likely to cause parallel running of the rule recipe. The bug goes
back to 1997, the initial c0734708814c commit.
* Makefile.am (targmatch.h): rm the temp file, not targmatch.h.
* Makefile.in: Regenerate.
diff --git a/bfd/Makefile.am b/bfd/Makefile.am
index f2f70590e88..92ff15b36ee 100644
--- a/bfd/Makefile.am
+++ b/bfd/Makefile.am
@@ -801,7 +801,7 @@ libbfd.a: stamp-lib ; @true
# vector names. It is built from config.bfd. It is not compiled by
# itself, but is included by targets.c.
targmatch.h: config.bfd targmatch.sed
- $(AM_V_at)rm -f targmatch.h
+ $(AM_V_at)rm -f targmatch.new
$(AM_V_GEN)$(SED) -f $(srcdir)/targmatch.sed < $(srcdir)/config.bfd > targmatch.new
$(AM_V_at)mv -f targmatch.new targmatch.h
diff --git a/bfd/Makefile.in b/bfd/Makefile.in
index 3068560c48b..b5f0c0a5c89 100644
--- a/bfd/Makefile.in
+++ b/bfd/Makefile.in
@@ -2331,7 +2331,7 @@ libbfd.a: stamp-lib ; @true
# vector names. It is built from config.bfd. It is not compiled by
# itself, but is included by targets.c.
targmatch.h: config.bfd targmatch.sed
- $(AM_V_at)rm -f targmatch.h
+ $(AM_V_at)rm -f targmatch.new
$(AM_V_GEN)$(SED) -f $(srcdir)/targmatch.sed < $(srcdir)/config.bfd > targmatch.new
$(AM_V_at)mv -f targmatch.new targmatch.h
--
Alan Modra
Australia Development Lab, IBM
More information about the Binutils
mailing list