[gcc-7] 210/354: ada: prevent parallel gnatmake invokations for gnattools. Closes: #857831.

Ximin Luo infinity0 at debian.org
Thu Nov 23 15:50:55 UTC 2017


This is an automated email from the git hooks/post-receive script.

infinity0 pushed a commit to branch master
in repository gcc-7.

commit 58c95f6d28b4ef244d840589c5705a9858014cd5
Author: nicolas <nicolas at 6ca36cf4-e1d1-0310-8c6f-e303bb2178ca>
Date:   Mon Jun 12 15:37:07 2017 +0000

    ada: prevent parallel gnatmake invokations for gnattools. Closes: #857831.
    
    git-svn-id: svn+ssh://svn.debian.org/svn/gcccvs/branches/sid/gcc-7@9513 6ca36cf4-e1d1-0310-8c6f-e303bb2178ca
---
 debian/patches/ada-gnattools-cross.diff | 25 +++++++++++++++----------
 1 file changed, 15 insertions(+), 10 deletions(-)

diff --git a/debian/patches/ada-gnattools-cross.diff b/debian/patches/ada-gnattools-cross.diff
index 32d4f10..2a17974 100644
--- a/debian/patches/ada-gnattools-cross.diff
+++ b/debian/patches/ada-gnattools-cross.diff
@@ -247,23 +247,28 @@ Index: b/src/gnattools/Makefile.in
  	"exeext=$(exeext)" \
  	"fsrcdir=$(fsrcdir)" \
  	"srcdir=$(fsrcdir)" \
-@@ -192,12 +199,18 @@
+@@ -190,6 +199,10 @@
+ # to be able to build gnatmake without a version of gnatmake around. Once 
+ # everything has been compiled once, gnatmake can be recompiled with itself 
  # (see target regnattools) 
++gnattools-native: export LD_LIBRARY_PATH := \
++  '$(if $(LD_LIBRARY_PATH),$(LD_LIBRARY_PATH):)$(vsndir):$(rtsdir)'
++# Useful even for 1st pass, as ../../gnatmake may already be
++# dynamically linked in case this target has already been invokated.
  gnattools-native: $(GCC_DIR)/stamp-tools $(GCC_DIR)/stamp-gnatlib-rts
  	# gnattools1
-+# The export is necessary in case the target is run twice.
-+	LD_LIBRARY_PATH='$(if $(LD_LIBRARY_PATH),$(LD_LIBRARY_PATH):)$(vsndir):$(rtsdir)' \
  	$(MAKE) -C $(GCC_DIR)/ada/tools -f ../Makefile \
- 	  $(TOOLS_FLAGS_TO_PASS_NATIVE) \
- 	  ../../gnatmake$(exeext) ../../gnatlink$(exeext)
+@@ -198,6 +211,13 @@
  	# gnattools2
+ 	$(MAKE) -C $(GCC_DIR)/ada/tools -f ../Makefile \
+ 	  $(TOOLS_FLAGS_TO_PASS_NATIVE) common-tools
 +# The hard-coded object lists for gnatbind/make/link contain unneeded
 +# objects. Use the fresh tools to recompute dependencies.
-+	LD_LIBRARY_PATH='$(if $(LD_LIBRARY_PATH),$(LD_LIBRARY_PATH):)$(vsndir):$(rtsdir)' \
- 	$(MAKE) -C $(GCC_DIR)/ada/tools -f ../Makefile \
--	  $(TOOLS_FLAGS_TO_PASS_NATIVE) common-tools
-+	  $(TOOLS_FLAGS_TO_PASS_NATIVE) common-tools \
-+	  gnatbind-re gnatmake-re gnatlink-re
++# A separate Make run avoids race conditions between gnatmakes
++# building the same object for common-tools and gnat*-re.
++# (parallelism is already forbidden between gnat*-re targets)
++	$(MAKE) -C $(GCC_DIR)/ada/tools -f ../Makefile \
++	  $(TOOLS_FLAGS_TO_PASS_NATIVE) gnatbind-re gnatmake-re gnatlink-re
  
  # gnatmake/link can be built with recent gnatmake/link if they are available.
  # This is especially convenient for building cross tools or for rebuilding

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/reproducible/gcc-7.git



More information about the Reproducible-commits mailing list