bfd targmatch.h makefile rule
authorAlan Modra <amodra@gmail.com>
Thu, 5 May 2022 23:15:46 +0000 (08:45 +0930)
committerAlan Modra <amodra@gmail.com>
Fri, 6 May 2022 03:51:26 +0000 (13:21 +0930)
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.

bfd/Makefile.am
bfd/Makefile.in

index f2f70590e8867e1dd71a64df7e0efc1c15a093fb..92ff15b36ee48fe9d9be0891eeb5548a7d5488fd 100644 (file)
@@ -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
 
index 3068560c48b4196e2c43107e961f43525f807004..b5f0c0a5c8961955ff8958ec7d8d08303bdfa2b3 100644 (file)
@@ -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