summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2011-11-01 03:38:01 +0000
committerMike Frysinger <vapier@gentoo.org>2011-11-01 03:38:01 +0000
commit9bdeed177fb4e12cc0b7f565c829bc6dc62f083c (patch)
tree7194ec285b4776aea054721f9035880555587cbd /app-shells
parentKeep third_party/jsoncpp. Bug 388915 by Ralf Mayer. (diff)
downloadhistorical-9bdeed177fb4e12cc0b7f565c829bc6dc62f083c.tar.gz
historical-9bdeed177fb4e12cc0b7f565c829bc6dc62f083c.tar.bz2
historical-9bdeed177fb4e12cc0b7f565c829bc6dc62f083c.zip
Fix parallel build failures with mkbuiltin.
Package-Manager: portage-2.2.0_alpha71/cvs/Linux x86_64
Diffstat (limited to 'app-shells')
-rw-r--r--app-shells/bash/ChangeLog6
-rw-r--r--app-shells/bash/Manifest10
-rw-r--r--app-shells/bash/files/bash-4.2-parallel-build.patch36
3 files changed, 46 insertions, 6 deletions
diff --git a/app-shells/bash/ChangeLog b/app-shells/bash/ChangeLog
index 5ba11d4b51c4..613a1b447160 100644
--- a/app-shells/bash/ChangeLog
+++ b/app-shells/bash/ChangeLog
@@ -1,6 +1,10 @@
# ChangeLog for app-shells/bash
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/app-shells/bash/ChangeLog,v 1.292 2011/10/07 20:01:04 vapier Exp $
+# $Header: /var/cvsroot/gentoo-x86/app-shells/bash/ChangeLog,v 1.293 2011/11/01 03:38:00 vapier Exp $
+
+ 01 Nov 2011; Mike Frysinger <vapier@gentoo.org>
+ files/bash-4.2-parallel-build.patch:
+ Fix parallel build failures with mkbuiltin.
07 Oct 2011; Mike Frysinger <vapier@gentoo.org> bash-4.2_p10.ebuild,
+files/bash-4.2-parallel-build.patch:
diff --git a/app-shells/bash/Manifest b/app-shells/bash/Manifest
index 478f7947cc9e..49898fef5a6d 100644
--- a/app-shells/bash/Manifest
+++ b/app-shells/bash/Manifest
@@ -26,7 +26,7 @@ AUX bash-4.0-parallel-build.patch 2237 RMD160 82aa28d48f12978cbaea7ebed987d13f53
AUX bash-4.1-fbsd-eaccess.patch 843 RMD160 50e06a8ec83fa756a9749ab5011696e737731afe SHA1 9468675bdb345c01f6a285d76526e851de63a895 SHA256 42a4ee58b0d2fd529e25fcc3ca10d17bbac2c91fd8bcb191d70c788f0b55fb95
AUX bash-4.1-parallel-build.patch 829 RMD160 371bd2d62a0b70c4305697975780165e02f2b38d SHA1 9978a6ed4668509660491799bbbc5b7d6ad2cbd9 SHA256 0da60b91e4fb2326137a4dde6d8937592b6efea45de51194ca1770127637e652
AUX bash-4.2-execute-job-control.patch 865 RMD160 8666b45a33ce11212a61c68a0e01a21ad1603c0e SHA1 4a154d9ac4c6ea1ff8e653fb13df462519a6a63f SHA256 0b6fc0d467662dd85daa02ba8d50ea612cf4c5274d685d52eb1533b5f164b056
-AUX bash-4.2-parallel-build.patch 2791 RMD160 fa41b6808c337a980cb5768efd7fb7c18a7a9af6 SHA1 ef5c7d413c0f650038ee55418ac52574466cd6df SHA256 d7daa6776c4d93603ae1343f16ca6d35578ff893b47326223a0540924e0ecf91
+AUX bash-4.2-parallel-build.patch 4382 RMD160 b33338ef9682675714719ece32e962076584d0cb SHA1 4d9b664d671b569e2af7ab354d271f63262814b0 SHA256 64f421034a62c879520a15aced79238b11ccbb9cc1a85df1ee04474b268b4fcb
AUX bash-4.2-print-heredoc.patch 854 RMD160 5d3fc358a9f9500baf3a83378ca8c935ee0b34df SHA1 70ffe49e867222cc5877edcacaee9842080d6375 SHA256 a686e71f9ab788015fa80eb448252eeedc2d8f8e97b0fc0c66c0d3f3088e87b4
AUX bash-4.x-deferred-heredocs.patch 1255 RMD160 69e3554d225e5a85be3f874b0bb0139c0e24c9b9 SHA1 b8d492af021ae59c9799dfbb169842c23ed9f826 SHA256 845ffcd7035eef5dc029747f211a737e0260b53b16086a37fb3c8ab3609a7d36
AUX bash_logout 205 RMD160 fa6064b67bd02cf66dc490759442a0127770d420 SHA1 a6983665cc842bde96fbc8811be89cf8fda71a45 SHA256 15aaded954389c05d7de5d36c4887db61975ad52c87ad78baf1062ec8997289d
@@ -176,12 +176,12 @@ EBUILD bash-4.1_p7.ebuild 5647 RMD160 d304c9b6eeb384f9baa4a84e262f4725a2fad7b0 S
EBUILD bash-4.1_p9.ebuild 5647 RMD160 a4735eb85dacda84c5e616c40b18d3bd6090c2b8 SHA1 fb124d72adcab6e86240cfc991c18eb0681333a1 SHA256 9dfe8f46a4e24aa1a994e886fae5a80228449b0471e0856368e521ad2fd36588
EBUILD bash-4.2_p10.ebuild 5604 RMD160 82d81068ca21f03dfa36e3f8e4b1506e91ef4a4d SHA1 65ae606556415c0cd82d1a8373aeb8574447650a SHA256 f0359ff78cd7c8b62e6e613779d83da25c158d430f2c54dee9c3d5fc2e1baf40
EBUILD bash-4.2_p8-r1.ebuild 5546 RMD160 d60f2c28b28dcb55b063f16b8ee5400b88e0f6d6 SHA1 096e27b3ead5a1ec0756f88471db3084bee98f01 SHA256 466fd15f97af04edd495bf0452c8bebb0725288c2503362ff3d0088e849ca105
-MISC ChangeLog 45424 RMD160 1447747418da545a19a8313df3a4410febb87b65 SHA1 1d022347256406e22fa96cc86de759277bef42b5 SHA256 e4a3b4509872cd4f4a0e85d6042e503f5e0d2395e1b55e7fd87ccaa7b2c67600
+MISC ChangeLog 45560 RMD160 eb56eb733af76794e7ce1596bdfce8ff329cebb1 SHA1 5fb50e9e38a145a5e7be0da69413e3a8cad7415c SHA256 49a103a8b8c341c857d737677fd6be15b87576467083d30cb1384b7b123f7698
MISC metadata.xml 568 RMD160 c778ff1669af3c368238bcf481b344b741f0d6e1 SHA1 8d74d1c518351ad8085c9c26a5f2554d8c768b20 SHA256 48d380acb97dda0a7f4bd918b208d11367a8367d289b0a2d78ef08ef9a4e2562
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.18 (GNU/Linux)
-iF4EAREIAAYFAk6PWo8ACgkQaC/OocHi7JaPSAD/WDTu8shnUh5OZQkM/yIRhk2/
-mguqsIJSLuKUQq4B6L0A/itc+j6XZ+L0TppJgzcFb4Xr9/Wc+0nz4eVFJvbvxJIj
-=CbI1
+iF4EAREIAAYFAk6vaaAACgkQaC/OocHi7JbC2wD/fnj9upTfsVKDqg7m2SVlI78U
+md8iGQOOx3OU5aAEJoMA/A6JWldxjQINBHw7DLU9b3PYAiL6gixYMkJsraT9pKlw
+=OgLy
-----END PGP SIGNATURE-----
diff --git a/app-shells/bash/files/bash-4.2-parallel-build.patch b/app-shells/bash/files/bash-4.2-parallel-build.patch
index 9a7f36fafbd8..115e5d2e59ea 100644
--- a/app-shells/bash/files/bash-4.2-parallel-build.patch
+++ b/app-shells/bash/files/bash-4.2-parallel-build.patch
@@ -1,3 +1,5 @@
+https://lists.gnu.org/archive/html/bug-bash/2011-10/msg00036.html
+
the current yacc rules allow multiple runs to generate the same files. usually
this doesn't come up as the generated files are shipped in the tarball, but
when you modify parse.y (applying a patch or developing or whatever), you can
@@ -33,6 +35,8 @@ itself issue a dummy rule (to avoid make thinking things changed).
# experimental new rules - work with GNU make but not BSD (or OSF) make
#y.tab.o: y.tab.c y.tab.h
+https://lists.gnu.org/archive/html/bug-bash/2011-10/msg00037.html
+
the current code generates a bunch of local libraries in subdirs and then
links bash against that. those subdirs sometimes need version.h. so they
have a rule to change back up to the parent dir and build version.h (which is
@@ -66,3 +70,35 @@ recursively enter the top level.
$(READLINE_LIBRARY): config.h $(READLINE_SOURCE)
@echo making $@ in ${RL_LIBDIR}
@( { test "${RL_LIBDIR}" = "${libdir}" && exit 0; } || \
+
+the top level Makefile will recurse into the defdir for multiple targets
+(libbuiltins.a, common.o, bashgetopt.o, builtext.h), and since these do
+not have any declared interdependencies, parallel makes will recurse into
+the subdir and build the respective targets.
+
+nothing depends on common.o or bashgetopt.o, so those targets don't get
+used normally. this leaves libbuiltins.a and builtext.h. at a glance,
+this shouldn't be a big deal, but when we look closer, there's a subtle
+failure lurking.
+
+most of the objects in the defdir need to be generated which means they
+need to build+link the local mkbuiltins helper. the builtext.h header
+also needs to be generated by the mkbuiltins helper. so when the top
+level launches a child for libbuiltins.a and a child for builtext.h, we
+can hit a race condition where the two try to generate mkbuiltins, and
+the build randomly fails.
+
+so update libbuiltins.a to depend on builtext.h. this should be fairly
+simple since it's only a single target.
+
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -674,7 +674,7 @@
+ $(RM) $@
+ ./mksyntax$(EXEEXT) -o $@
+
+-$(BUILTINS_LIBRARY): $(BUILTIN_DEFS) $(BUILTIN_C_SRC) config.h ${BASHINCDIR}/memalloc.h version.h
++$(BUILTINS_LIBRARY): $(BUILTIN_DEFS) $(BUILTIN_C_SRC) config.h ${BASHINCDIR}/memalloc.h ${DEFDIR}/builtext.h version.h
+ @(cd $(DEFDIR) && $(MAKE) $(MFLAGS) DEBUG=${DEBUG} libbuiltins.a ) || exit 1
+
+ # these require special rules to circumvent make builtin rules