From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1521) id B406A3858430; Thu, 24 Feb 2022 03:05:05 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B406A3858430 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Michael Frysinger To: newlib-cvs@sourceware.org Subject: [newlib-cygwin] newlib: fix multilib libg.a parallel builds X-Act-Checkin: newlib-cygwin X-Git-Author: Mike Frysinger X-Git-Refname: refs/heads/master X-Git-Oldrev: 5ad394510bb36aaebd5bb054a5bf4730f666947b X-Git-Newrev: acf642177b81543a4d954e58cfb24347c02b125a Message-Id: <20220224030505.B406A3858430@sourceware.org> Date: Thu, 24 Feb 2022 03:05:05 +0000 (GMT) X-BeenThere: newlib-cvs@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Newlib GIT logs List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Feb 2022 03:05:05 -0000 https://sourceware.org/git/gitweb.cgi?p=3Dnewlib-cygwin.git;h=3Dacf642177b8= 1543a4d954e58cfb24347c02b125a commit acf642177b81543a4d954e58cfb24347c02b125a Author: Mike Frysinger Date: Wed Feb 23 22:01:05 2022 -0500 newlib: fix multilib libg.a parallel builds =20 I split libg.a out into a sep target from libc.a for the main dir in commit f2b053f49ed2bd7b4da8cf4ed3a608dc2f425c2b ("newlib: separate out libg from libc"), but missed the multilib dirs. That leads to an uncommon parallel build failure: - libc.a rule runs & finishes - $(BUILD_MULTISUBDIR)/libc.a rule runs -> failure due to libg.a not yet existing - libg.a rule runs & finishes =20 Split the multilib libg rule out from libc too so it can depend on the main libg directly and avoid this race. Diff: --- newlib/Makefile.am | 8 +++++--- newlib/Makefile.in | 8 +++++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/newlib/Makefile.am b/newlib/Makefile.am index 1a5123f0a..0479ca4f5 100644 --- a/newlib/Makefile.am +++ b/newlib/Makefile.am @@ -161,10 +161,12 @@ $(BUILD_MULTISUBDIR)/crt0.o: $(CRT0_DIR)$(CRT0) $(BUI= LD_MULTISUBDIR) ln $< $@ >/dev/null 2>/dev/null || cp $< $@ =20 $(BUILD_MULTISUBDIR)/libc.a: libc.a $(BUILD_MULTISUBDIR) - rm -f $@ $(BUILD_MULTISUBDIR)/libg.a + rm -f $@ + ln $< $@ >/dev/null 2>/dev/null || cp $< $@ + +$(BUILD_MULTISUBDIR)/libg.a: libg.a ${BUILD_MULTISUBDIR} + rm -f $@ ln $< $@ >/dev/null 2>/dev/null || cp $< $@ - ln libg.a $(BUILD_MULTISUBDIR)/libg.a >/dev/null 2>/dev/null || \ - cp libg.a $(BUILD_MULTISUBDIR)/libg.a =20 $(BUILD_MULTISUBDIR)/libm.a: libm.a $(BUILD_MULTISUBDIR) rm -f $@ diff --git a/newlib/Makefile.in b/newlib/Makefile.in index cc7afc704..106f11ba0 100644 --- a/newlib/Makefile.in +++ b/newlib/Makefile.in @@ -8672,10 +8672,12 @@ libm.a: $(libm_a_OBJECTS) $(libm_a_DEPENDENCIES) @HAVE_MULTISUBDIR_TRUE@ ln $< $@ >/dev/null 2>/dev/null || cp $< $@ =20 @HAVE_MULTISUBDIR_TRUE@$(BUILD_MULTISUBDIR)/libc.a: libc.a $(BUILD_MULTISU= BDIR) -@HAVE_MULTISUBDIR_TRUE@ rm -f $@ $(BUILD_MULTISUBDIR)/libg.a +@HAVE_MULTISUBDIR_TRUE@ rm -f $@ +@HAVE_MULTISUBDIR_TRUE@ ln $< $@ >/dev/null 2>/dev/null || cp $< $@ + +@HAVE_MULTISUBDIR_TRUE@$(BUILD_MULTISUBDIR)/libg.a: libg.a ${BUILD_MULTISU= BDIR} +@HAVE_MULTISUBDIR_TRUE@ rm -f $@ @HAVE_MULTISUBDIR_TRUE@ ln $< $@ >/dev/null 2>/dev/null || cp $< $@ -@HAVE_MULTISUBDIR_TRUE@ ln libg.a $(BUILD_MULTISUBDIR)/libg.a >/dev/null 2= >/dev/null || \ -@HAVE_MULTISUBDIR_TRUE@ cp libg.a $(BUILD_MULTISUBDIR)/libg.a =20 @HAVE_MULTISUBDIR_TRUE@$(BUILD_MULTISUBDIR)/libm.a: libm.a $(BUILD_MULTISU= BDIR) @HAVE_MULTISUBDIR_TRUE@ rm -f $@