mirror of
https://github.com/flatcar/scripts.git
synced 2025-08-10 06:26:57 +02:00
bash: update to latest stable
Upgraded app-shells/bash to version 4.2_p20 on amd64, arm, x86. This version includes parallel build fixes that are biting us. BUG=None TEST=`cbuildbot amd64-generic-full` worked TEST=`cbuildbot arm-generic-full` worked TEST=`cbuildbot x86-generic-full` worked Change-Id: I7ced1cd378ae279da13407c7b70d22f20fb6de42 Reviewed-on: https://gerrit.chromium.org/gerrit/19240 Commit-Ready: Mike Frysinger <vapier@chromium.org> Reviewed-by: Mike Frysinger <vapier@chromium.org> Tested-by: Mike Frysinger <vapier@chromium.org>
This commit is contained in:
parent
ccdc0d795c
commit
7323fc7bb6
@ -1,10 +1,21 @@
|
||||
DIST bash-4.1.tar.gz 6598300 RMD160 554c7ecb4a63da431768caed1f958c06b8fa7207 SHA1 3bd1ec9c66f3689f6b3495bdaaf9077b2e5dc150 SHA256 3f627124a83c6d34db503a923e20710d370573a29dd5d11d6f116d1aee7be1da
|
||||
DIST bash41-001 1445 RMD160 20730f893b6661a6bb00102548156c3cb059f6bc SHA1 41e176f9de749e432bebb8fac5d033a3936045f6 SHA256 a6e47fa108f853d0f0999520509c11680d37c8b7823b92b96d431766dd620278
|
||||
DIST bash41-002 1799 RMD160 1a579481f81953e7f1dede0aaf1a03e4aad29aaf SHA1 72a9ad2e08d35e02ac1417f3aedf39db4cb4c66f SHA256 322e229de186b3bd87dedabfbad8386716f103e87ff00cd1b2db844e0dff78f8
|
||||
DIST bash41-003 1407 RMD160 e267f796c3f4b446c36553dbe254f849573b3f24 SHA1 31ae7f511d99ea336ba2299c10e493c21512e3ad SHA256 91763dddbbb98c3ff7deb3faea3b3ad6e861e7bfd2e46c045c0d1d85d1b3256d
|
||||
DIST bash41-004 1705 RMD160 b8167b4b7fe272cca741c5e7ad67b9bb068e690e SHA1 469dff697b7ac1c157dcc625d9333a1dcdb88ae2 SHA256 78c063ba34c1f390a5bf2e5727624ca2e253bbef49ce187cabb240eee7f4ff9e
|
||||
DIST bash41-005 1626 RMD160 9a10c71f92c4107a3821f8e2b72a69c62faadc14 SHA1 c8400b7d3ddb2f8c7159bbbd238b22fc10504e12 SHA256 519639d8d1664be74d7ec15879d16337fe8c71af8d648b02f84ccdd4fb739c1a
|
||||
DIST bash41-006 2166 RMD160 1d06bb92b8726bf17d2e6aeb43e9737faef9d3a6 SHA1 9707fc6a92d4de907016584074187c1aaca25f2a SHA256 5986abcf33c0b087bd5670f1ae6a6400a8ce6ab7e7c4de18b9826d0ee10f2c49
|
||||
DIST bash41-007 1610 RMD160 6d62d0e3d596ad031cd5f386f3e9c2dc9076283f SHA1 614e46128d6f9867132b31765f60a514b395ae43 SHA256 74012a2c28ba4fb532c3eb69155ac870aac8d53990fa4e1e52cdc173d4c205a7
|
||||
DIST bash41-008 1610 RMD160 65b2f91de730c9abb9749c050e769c6c1fbb33b0 SHA1 f4e618e4d4c01b2b57cdc933e648f27f82b0157a SHA256 4e2c2c251432cdf6b84dd5b4fd06d698f4dbeabb56a6c247ca8bf18443481215
|
||||
DIST bash41-009 1323 RMD160 e81d4e0e25e64591ab1bda61b800e768200d9e05 SHA1 d874f61674144060a7788665f1531fe21167c7c2 SHA256 bd4006964ae88a5ed8032c16208130084efd43866afe19bb88a167e0c0f156d1
|
||||
DIST bash-4.2.tar.gz 7009201 RMD160 df7ae51783f039a1234d3b720ffcf4bfa5d09673 SHA1 487840ab7134eb7901fbb2e49b0ee3d22de15cb8 SHA256 a27a1179ec9c0830c65c6aa5d7dab60f7ce1a2a608618570f96bfa72e95ab3d8
|
||||
DIST bash42-001 2944 RMD160 1e6432102cc0f0dd1dd0a207e4a892b4f13c00b0 SHA1 c069f07492c9199bc7cff71a4f032f668ba4ea0a SHA256 8d6ca028576c4af23e660a2fbc2112221a11c8a785c0b37f033967e5cd12b47a
|
||||
DIST bash42-002 1780 RMD160 833544ad6586b0ece53881cc850ff448ec563cbb SHA1 75b6726656a08e47172704545c57a290e29075e9 SHA256 febac927e199aceeba2004908d971d4afb49b521796c3f42d1166f9fbbfbcef9
|
||||
DIST bash42-003 6896 RMD160 9f6e560984997b595a0a6d85f751c1b8150300f0 SHA1 c18390edcc87c347cade67d9c1653f1f220ce64d SHA256 5a0a7c15018c87348ea87cb0beea14345faf878dbb0e25c17fa70677194cb4cd
|
||||
DIST bash42-004 1686 RMD160 5dba7fd5c6fdfa64bf9a2696a65698482d7e7bdd SHA1 e10f0e8d3c24c10efffbca4605acb966393901ff SHA256 4e34b0f830d2583d56e14225a66937abc81f45bbafcd2eb49daf61c9462140c1
|
||||
DIST bash42-005 3424 RMD160 09572f3971beaaaa9be1bde5f9e7d3a6e56e5159 SHA1 c1dd32f9aab963830cb9bf5c0973eefa4d7f8881 SHA256 a81749e73004b81cfdf0fe075bec365dc1fef756ee5e3fd142821e317d1459a0
|
||||
DIST bash42-006 1187 RMD160 92a4c3eb612fe1e74a6ded3623d1fbd8322fe843 SHA1 4ae28b47a46850db3a5936ff0fafb9056f15329f SHA256 c91148945a2ddafa792682d7c8668c59e7e645eae1334b15b0d5d9ad22634bd1
|
||||
DIST bash42-007 1394 RMD160 73285b61d25a7f998d52965d0615cdd547252527 SHA1 31cf0373b1d4d61540474b6f527bf7675e8773f3 SHA256 405826acf443dd1084f236a15cb76d7f0ee2dbe5edff45c5fb836db571fb7e95
|
||||
DIST bash42-008 2164 RMD160 45ce8834c1ca6f8dbfc2551fd19067c1d425e01b SHA1 7f0961aaf284b36eac1503824cd9e85926628120 SHA256 23080d11a60a78941210e2477f6bca066b45db03defa60da86fd765107ba2437
|
||||
DIST bash42-009 2384 RMD160 3b191c111071fca49490d8dabc6d973b57453eca SHA1 c7f9dede34e30494a9adb479e406814f4d62da2a SHA256 e7ed5440b4c19765786e90e4f1ded43195d38b3e4d1c4b39fcc23de9a74ccb20
|
||||
DIST bash42-010 1818 RMD160 e77d2725c0613dd8d5a83a8e7dfcba29b7aa419f SHA1 662192c4675300f488897a6ed8774e16e7a13e2e SHA256 acfc5482c25e6923116fcf4b4f7f6345b80f75ad7299749db4b736ad67aa43dc
|
||||
DIST bash42-011 1426 RMD160 8b074057235280624eab8b4736cff681893e3aa0 SHA1 5f4131f3ab9751a6828269ef4079a841258671cb SHA256 a491ae359a7ebbd7321aede561728289d71e1fc84777f402766a8afd4d261532
|
||||
DIST bash42-012 4247 RMD160 44913fb6646b26520f5349ada2a45fbf7d081206 SHA1 aad2483f7f48c29274ce0ef63027f3749b8388fc SHA256 354433f1d2da02f1b9652cd20a5b85bbfb5bc2aaf79c42461ebd929d89b9b7b8
|
||||
DIST bash42-013 1340 RMD160 24e23ac56b4bbc868ccdaab0ab96128a727dfb9f SHA1 2d60fc3b0ee40f9eb308b76185142f865df0fa17 SHA256 3412c5c6cbbce6c88592604aec054d8182ce64410038b5ecea69fc3968cf85ea
|
||||
DIST bash42-014 1434 RMD160 9b1f57f54577ae0abca98503c8afb064e1256383 SHA1 320bba1f869602c07a9972862d38b9ba108726a6 SHA256 b5a678e609858532735f94faedb5fabce00dfd6577a4e9ec5eec85fe682c8b33
|
||||
DIST bash42-015 1991 RMD160 9c98e543892050ccd5ebc324687d0461acb882e6 SHA1 7b9c9a91ab5a79b8344877ff45ed204ba1b04ef3 SHA256 2d876a8304bdf3d664e87e0a8d73bc4ccc100a9dd8c0d054e8649472d8748a98
|
||||
DIST bash42-016 1410 RMD160 b57a43affdb3ecede627945a03ffe386b0e6ee55 SHA1 f4a39fb2b79f7c5c04ee78fb598199ba7440fd70 SHA256 2895ccbcf7fc98da73a8fa3ba7440aaf2bfaef6c0af8bdd3a9c39403cf03e2a6
|
||||
DIST bash42-017 1399 RMD160 b352a79b20d8cc6bc80b65b30ce36e4c456780e9 SHA1 f80797fce1fefff4047cecf0f32731bc30f6faee SHA256 73552444498c761d6073dd67ccfe043b36ef24bb418c266d91d9750884daee7f
|
||||
DIST bash42-018 1929 RMD160 06e93430b076de51e68f679054540d202ad241c5 SHA1 3624c31ed7d8c613b566e3d465480beed34bdaba SHA256 e2a9457172370d454d31b84bbcba758ee6394316dbe755374553b52aadbb494d
|
||||
DIST bash42-019 1415 RMD160 7dc05011b79f37553c4a669ba929c55a18727ea9 SHA1 21a75dadb1398775b48718e94785642f5fad9777 SHA256 a8b7cd02207656976016d93cab48e073cb5da002ceb27b7a63fc5ea62007eb56
|
||||
DIST bash42-020 1825 RMD160 4a66e21e8288322b1aed7f0698a684f10f4934bb SHA1 5c4afeef6ef7321fcc5a08f2d3024c484868fa59 SHA256 494773f0d0078cb35372d24caa523b00d8fdbbaed71e41dc14c9e47579da3c6f
|
||||
|
@ -1,20 +1,18 @@
|
||||
# Copyright 1999-2011 Gentoo Foundation
|
||||
# Copyright 1999-2012 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/app-shells/bash/bash-4.1_p9.ebuild,v 1.8 2011/05/16 10:36:26 nyhm Exp $
|
||||
# $Header: /var/cvsroot/gentoo-x86/app-shells/bash/bash-4.2_p20.ebuild,v 1.10 2012/03/25 16:31:53 maekke Exp $
|
||||
|
||||
EAPI="1"
|
||||
|
||||
inherit eutils flag-o-matic toolchain-funcs multilib
|
||||
|
||||
# Official patchlevel
|
||||
# See ftp://ftp.cwru.edu/pub/bash/bash-3.2-patches/
|
||||
# See ftp://ftp.cwru.edu/pub/bash/bash-4.2-patches/
|
||||
PLEVEL=${PV##*_p}
|
||||
MY_PV=${PV/_p*}
|
||||
MY_PV=${MY_PV/_/-}
|
||||
MY_P=${PN}-${MY_PV}
|
||||
[[ ${PV} != *_p* ]] && PLEVEL=0
|
||||
READLINE_VER=6.1
|
||||
READLINE_PLEVEL=0 # both readline patches are also released as bash patches
|
||||
patches() {
|
||||
local opt=$1 plevel=${2:-${PLEVEL}} pn=${3:-${PN}} pv=${4:-${MY_PV}}
|
||||
[[ ${plevel} -eq 0 ]] && return 1
|
||||
@ -32,19 +30,21 @@ patches() {
|
||||
|
||||
DESCRIPTION="The standard GNU Bourne again shell"
|
||||
HOMEPAGE="http://tiswww.case.edu/php/chet/bash/bashtop.html"
|
||||
SRC_URI="mirror://gnu/bash/${MY_P}.tar.gz $(patches)
|
||||
$(patches ${READLINE_PLEVEL} readline ${READLINE_VER})"
|
||||
SRC_URI="mirror://gnu/bash/${MY_P}.tar.gz $(patches)"
|
||||
|
||||
LICENSE="GPL-3"
|
||||
SLOT="0"
|
||||
KEYWORDS="alpha amd64 arm hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~sparc-fbsd ~x86-fbsd"
|
||||
KEYWORDS="~alpha amd64 arm hppa ~ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh ~sparc x86 ~sparc-fbsd ~x86-fbsd"
|
||||
IUSE="afs bashlogger examples mem-scramble +net nls plugins vanilla"
|
||||
|
||||
DEPEND=">=sys-libs/ncurses-5.2-r2
|
||||
>=sys-libs/readline-6.2
|
||||
nls? ( virtual/libintl )"
|
||||
RDEPEND="${DEPEND}
|
||||
!<sys-apps/portage-2.1.7.16
|
||||
!<sys-apps/paludis-0.26.0_alpha5"
|
||||
# we only need yacc when the .y files get patched (bash42-005)
|
||||
DEPEND+=" virtual/yacc"
|
||||
|
||||
S=${WORKDIR}/${MY_P}
|
||||
|
||||
@ -66,16 +66,18 @@ src_unpack() {
|
||||
|
||||
# Include official patches
|
||||
[[ ${PLEVEL} -gt 0 ]] && epatch $(patches -s)
|
||||
cd lib/readline
|
||||
[[ ${READLINE_PLEVEL} -gt 0 ]] && epatch $(patches -s ${READLINE_PLEVEL} readline ${READLINE_VER})
|
||||
cd ../..
|
||||
|
||||
epatch "${FILESDIR}"/${PN}-4.1-fbsd-eaccess.patch #303411
|
||||
# Clean out local libs so we know we use system ones
|
||||
rm -rf lib/{readline,termcap}/*
|
||||
touch lib/{readline,termcap}/Makefile.in # for config.status
|
||||
sed -ri -e 's:\$[(](RL|HIST)_LIBSRC[)]/[[:alpha:]]*.h::g' Makefile.in || die
|
||||
|
||||
if ! use vanilla ; then
|
||||
sed -i '1i#define NEED_FPURGE_DECL' execute_cmd.c # needs fpurge() decl
|
||||
epatch "${FILESDIR}"/${PN}-4.1-parallel-build.patch
|
||||
fi
|
||||
# Avoid regenerating docs after patches #407985
|
||||
sed -i -r '/^(HS|RL)USER/s:=.*:=:' doc/Makefile.in || die
|
||||
touch -r . doc/*
|
||||
|
||||
epatch "${FILESDIR}"/${PN}-4.2-execute-job-control.patch #383237
|
||||
epatch "${FILESDIR}"/${PN}-4.2-parallel-build.patch
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
@ -92,33 +94,37 @@ src_compile() {
|
||||
-DSSH_SOURCE_BASHRC \
|
||||
$(use bashlogger && echo -DSYSLOG_HISTORY)
|
||||
|
||||
# Always use the buildin readline, else if we update readline
|
||||
# bash gets borked as readline is usually not binary compadible
|
||||
# between minor versions.
|
||||
#myconf="${myconf} $(use_with !readline installed-readline)"
|
||||
myconf="${myconf} --without-installed-readline"
|
||||
|
||||
# Don't even think about building this statically without
|
||||
# reading Bug 7714 first. If you still build it statically,
|
||||
# don't come crying to us with bugs ;).
|
||||
#use static && export LDFLAGS="${LDFLAGS} -static"
|
||||
use nls || myconf="${myconf} --disable-nls"
|
||||
|
||||
# Force linking with system curses ... the bundled termcap lib
|
||||
# sucks bad compared to ncurses
|
||||
myconf="${myconf} --with-curses"
|
||||
# Historically, we always used the builtin readline, but since
|
||||
# our handling of SONAME upgrades has gotten much more stable
|
||||
# in the PM (and the readline ebuild itself preserves the old
|
||||
# libs during upgrades), linking against the system copy should
|
||||
# be safe.
|
||||
# Exact cached version here doesn't really matter as long as it
|
||||
# is at least what's in the DEPEND up above.
|
||||
export ac_cv_rl_version=6.2
|
||||
|
||||
myconf="${myconf} --without-lispdir" #335896
|
||||
# Force linking with system curses ... the bundled termcap lib
|
||||
# sucks bad compared to ncurses. For the most part, ncurses
|
||||
# is here because readline needs it. But bash itself calls
|
||||
# ncurses in one or two small places :(.
|
||||
|
||||
use plugins && append-ldflags -Wl,-rpath,/usr/$(get_libdir)/bash
|
||||
econf \
|
||||
--with-installed-readline=. \
|
||||
--with-curses \
|
||||
$(use_with afs) \
|
||||
$(use_enable net net-redirections) \
|
||||
--disable-profiling \
|
||||
$(use_enable mem-scramble) \
|
||||
$(use_with mem-scramble bash-malloc) \
|
||||
${myconf} || die
|
||||
emake || die "make failed"
|
||||
${myconf}
|
||||
emake || die
|
||||
|
||||
if use plugins ; then
|
||||
emake -C examples/loadables all others || die
|
@ -1,29 +0,0 @@
|
||||
Bash built-in test fails to correctly report exeuctable status for non-
|
||||
executable files when run by root on FreeBSD.
|
||||
|
||||
See http://bugs.gentoo.org/303411
|
||||
|
||||
Patch from Johan Hattne <johan.hattne@utsuthwestern.edu>
|
||||
--- lib/sh/eaccess.c.orig
|
||||
+++ lib/sh/eaccess.c
|
||||
@@ -198,11 +198,19 @@
|
||||
char *path;
|
||||
int mode;
|
||||
{
|
||||
+ struct stat s;
|
||||
+ int ret;
|
||||
+
|
||||
if (path_is_devfd (path))
|
||||
return (sh_stataccess (path, mode));
|
||||
|
||||
#if defined (HAVE_EACCESS) /* FreeBSD */
|
||||
- return (eaccess (path, mode));
|
||||
+ if (stat (path, &s) != 0)
|
||||
+ return (-1);
|
||||
+ ret = eaccess (path, mode);
|
||||
+ if (mode == X_OK && ret == 0 && !S_ISDIR(s.st_mode) && geteuid() == 0)
|
||||
+ return ((s.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)) == 0 ? -1 : 0);
|
||||
+ return (ret);
|
||||
#elif defined (EFF_ONLY_OK) /* SVR4(?), SVR4.2 */
|
||||
return access (path, mode|EFF_ONLY_OK);
|
||||
#else
|
@ -1,23 +0,0 @@
|
||||
--- bash-4.1/lib/glob/Makefile.in
|
||||
+++ bash-4.1/lib/glob/Makefile.in
|
||||
@@ -119,6 +119,11 @@
|
||||
mostlyclean: clean
|
||||
-( cd doc && $(MAKE) $(MFLAGS) $@ )
|
||||
|
||||
+# Dependencies
|
||||
+
|
||||
+${BUILD_DIR}/pathnames.h: ${BUILD_DIR}/config.h ${BUILD_DIR}/Makefile Makefile
|
||||
+ -( cd ${BUILD_DIR} && ${MAKE} ${MFLAGS} pathnames.h )
|
||||
+
|
||||
######################################################################
|
||||
# #
|
||||
# Dependencies for the object files which make up this library. #
|
||||
@@ -136,7 +141,7 @@
|
||||
strmatch.o: $(BUILD_DIR)/config.h
|
||||
strmatch.o: $(BASHINCDIR)/stdc.h
|
||||
|
||||
-glob.o: $(BUILD_DIR)/config.h
|
||||
+glob.o: $(BUILD_DIR)/config.h $(topdir)/shell.h $(BUILD_DIR)/pathnames.h
|
||||
glob.o: $(topdir)/bashtypes.h $(BASHINCDIR)/ansi_stdlib.h $(topdir)/bashansi.h
|
||||
glob.o: $(BASHINCDIR)/posixstat.h $(BASHINCDIR)/memalloc.h
|
||||
glob.o: strmatch.h glob.h
|
@ -0,0 +1,24 @@
|
||||
fix build when job control is disabled
|
||||
|
||||
http://lists.gnu.org/archive/html/bug-bash/2011-06/msg00110.html
|
||||
http://lists.gnu.org/archive/html/bug-bash/2011-07/msg00057.html
|
||||
http://lists.gnu.org/archive/html/bug-bash/2011-09/msg00039.html
|
||||
https://bugs.gentoo.org/383237
|
||||
|
||||
should be fixed in next release of bash ...
|
||||
|
||||
--- a/execute_cmd.c
|
||||
+++ b/execute_cmd.c
|
||||
@@ -2202,7 +2202,11 @@
|
||||
/* If the `lastpipe' option is set with shopt, and job control is not
|
||||
enabled, execute the last element of non-async pipelines in the
|
||||
current shell environment. */
|
||||
- if (lastpipe_opt && job_control == 0 && asynchronous == 0 && pipe_out == NO_PIPE && prev > 0)
|
||||
+ if (lastpipe_opt &&
|
||||
+#if defined(JOB_CONTROL)
|
||||
+ job_control == 0 &&
|
||||
+#endif
|
||||
+ asynchronous == 0 && pipe_out == NO_PIPE && prev > 0)
|
||||
{
|
||||
lstdin = move_to_high_fd (0, 0, 255);
|
||||
if (lstdin > 0)
|
106
sdk_container/src/third_party/portage-stable/app-shells/bash/files/bash-4.2-parallel-build.patch
vendored
Normal file
106
sdk_container/src/third_party/portage-stable/app-shells/bash/files/bash-4.2-parallel-build.patch
vendored
Normal file
@ -0,0 +1,106 @@
|
||||
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
|
||||
hit this problem.
|
||||
|
||||
simple way of showing this:
|
||||
make -j y.tab.{c,h}
|
||||
a correct system would not show the yacc parser running twice :)
|
||||
|
||||
simple patch is to have the .h file depend on the .c file, and have the .h file
|
||||
itself issue a dummy rule (to avoid make thinking things changed).
|
||||
|
||||
--- a/Makefile.in
|
||||
+++ b/Makefile.in
|
||||
@@ -579,16 +579,17 @@
|
||||
|
||||
# old rules
|
||||
GRAM_H = parser-built
|
||||
-y.tab.o: y.tab.c ${GRAM_H} command.h ${BASHINCDIR}/stdc.h input.h
|
||||
+y.tab.o: y.tab.h y.tab.c ${GRAM_H} command.h ${BASHINCDIR}/stdc.h input.h
|
||||
${GRAM_H}: y.tab.h
|
||||
@-if test -f y.tab.h ; then \
|
||||
cmp -s $@ y.tab.h 2>/dev/null || cp -p y.tab.h $@; \
|
||||
fi
|
||||
-y.tab.c y.tab.h: parse.y
|
||||
+y.tab.c: parse.y
|
||||
# -if test -f y.tab.h; then mv -f y.tab.h old-y.tab.h; fi
|
||||
$(YACC) -d $(srcdir)/parse.y
|
||||
touch parser-built
|
||||
# -if cmp -s old-y.tab.h y.tab.h; then mv old-y.tab.h y.tab.h; else cp -p y.tab.h ${GRAM_H}; fi
|
||||
+y.tab.h: y.tab.c ; @true
|
||||
|
||||
# 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
|
||||
fine). the trouble is that the top level objects and the subdirs are allowed
|
||||
to build in parallel, so it's possible for multiple children to see that
|
||||
version.h is not available and that it needs to be created, so they all do.
|
||||
|
||||
there is even more trouble is that version.h depends on all the top level
|
||||
sources, some of which are compiled (like syntax.c). so these parallel
|
||||
children all kick off a job to generate syntax.c which in turn requires the
|
||||
mksyntax helper executable. obviously multiple processes rm-ing, compiling,
|
||||
and linking the same files quickly falls apart.
|
||||
|
||||
so tweak the subdirs to all depend on the .build target which in turn depends
|
||||
on all of these top level files being generated. now the subdirs won't try and
|
||||
recursively enter the top level.
|
||||
|
||||
(noticed by David James)
|
||||
|
||||
--- a/Makefile.in
|
||||
+++ b/Makefile.in
|
||||
@@ -597,6 +598,11 @@
|
||||
# $(YACC) -d $(srcdir)/parse.y
|
||||
# -if cmp -s old-y.tab.h y.tab.h; then mv old-y.tab.h y.tab.h; fi
|
||||
|
||||
+# Subdirs will often times want version.h, so they'll change back up to
|
||||
+# the top level and try to create it. This causes parallel build issues
|
||||
+# so just force top level sanity before we descend.
|
||||
+$(LIBDEP): .build
|
||||
+
|
||||
$(READLINE_LIBRARY): config.h $(READLINE_SOURCE)
|
||||
@echo making $@ in ${RL_LIBDIR}
|
||||
@( { test "${RL_LIBDIR}" = "${libdir}" && exit 0; } || \
|
||||
|
||||
http://lists.gnu.org/archive/html/bug-bash/2011-10/msg00107.html
|
||||
|
||||
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
|
@ -1,13 +0,0 @@
|
||||
DEFINED_PHASES=compile install postinst preinst setup unpack
|
||||
DEPEND=>=sys-libs/ncurses-5.2-r2 nls? ( virtual/libintl )
|
||||
DESCRIPTION=The standard GNU Bourne again shell
|
||||
EAPI=1
|
||||
HOMEPAGE=http://tiswww.case.edu/php/chet/bash/bashtop.html
|
||||
IUSE=afs bashlogger examples mem-scramble +net nls plugins vanilla
|
||||
KEYWORDS=alpha amd64 arm hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~sparc-fbsd ~x86-fbsd
|
||||
LICENSE=GPL-3
|
||||
RDEPEND=>=sys-libs/ncurses-5.2-r2 nls? ( virtual/libintl ) !<sys-apps/portage-2.1.7.16 !<sys-apps/paludis-0.26.0_alpha5
|
||||
SLOT=0
|
||||
SRC_URI=mirror://gnu/bash/bash-4.1.tar.gz ftp://ftp.cwru.edu/pub/bash/bash-4.1-patches/bash41-001 ftp://ftp.cwru.edu/pub/bash/bash-4.1-patches/bash41-002 ftp://ftp.cwru.edu/pub/bash/bash-4.1-patches/bash41-003 ftp://ftp.cwru.edu/pub/bash/bash-4.1-patches/bash41-004 ftp://ftp.cwru.edu/pub/bash/bash-4.1-patches/bash41-005 ftp://ftp.cwru.edu/pub/bash/bash-4.1-patches/bash41-006 ftp://ftp.cwru.edu/pub/bash/bash-4.1-patches/bash41-007 ftp://ftp.cwru.edu/pub/bash/bash-4.1-patches/bash41-008 ftp://ftp.cwru.edu/pub/bash/bash-4.1-patches/bash41-009 mirror://gnu/bash/bash-4.1-patches/bash41-001 mirror://gnu/bash/bash-4.1-patches/bash41-002 mirror://gnu/bash/bash-4.1-patches/bash41-003 mirror://gnu/bash/bash-4.1-patches/bash41-004 mirror://gnu/bash/bash-4.1-patches/bash41-005 mirror://gnu/bash/bash-4.1-patches/bash41-006 mirror://gnu/bash/bash-4.1-patches/bash41-007 mirror://gnu/bash/bash-4.1-patches/bash41-008 mirror://gnu/bash/bash-4.1-patches/bash41-009
|
||||
_eclasses_=eutils 33ef77a15337022e05342d2c772a7a5a flag-o-matic 01a8b1eb019305bc4b4a8bd0b04e4cd8 multilib 5f4ad6cf85e365e8f0c6050ddd21659e portability 0be430f759a631e692678ed796e09f5c toolchain-funcs 6526ac6fc9aedf391efb91fcd75ace68 user 9e552f935106ff0bc92af16da64b4b29
|
||||
_md5_=f06eb0b8cf6dc37429116e58865d83d1
|
13
sdk_container/src/third_party/portage-stable/metadata/md5-cache/app-shells/bash-4.2_p20
vendored
Normal file
13
sdk_container/src/third_party/portage-stable/metadata/md5-cache/app-shells/bash-4.2_p20
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
DEFINED_PHASES=compile install postinst preinst setup unpack
|
||||
DEPEND=>=sys-libs/ncurses-5.2-r2 >=sys-libs/readline-6.2 nls? ( virtual/libintl ) virtual/yacc
|
||||
DESCRIPTION=The standard GNU Bourne again shell
|
||||
EAPI=1
|
||||
HOMEPAGE=http://tiswww.case.edu/php/chet/bash/bashtop.html
|
||||
IUSE=afs bashlogger examples mem-scramble +net nls plugins vanilla
|
||||
KEYWORDS=~alpha amd64 arm hppa ~ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh ~sparc x86 ~sparc-fbsd ~x86-fbsd
|
||||
LICENSE=GPL-3
|
||||
RDEPEND=>=sys-libs/ncurses-5.2-r2 >=sys-libs/readline-6.2 nls? ( virtual/libintl ) !<sys-apps/portage-2.1.7.16 !<sys-apps/paludis-0.26.0_alpha5
|
||||
SLOT=0
|
||||
SRC_URI=mirror://gnu/bash/bash-4.2.tar.gz ftp://ftp.cwru.edu/pub/bash/bash-4.2-patches/bash42-001 ftp://ftp.cwru.edu/pub/bash/bash-4.2-patches/bash42-002 ftp://ftp.cwru.edu/pub/bash/bash-4.2-patches/bash42-003 ftp://ftp.cwru.edu/pub/bash/bash-4.2-patches/bash42-004 ftp://ftp.cwru.edu/pub/bash/bash-4.2-patches/bash42-005 ftp://ftp.cwru.edu/pub/bash/bash-4.2-patches/bash42-006 ftp://ftp.cwru.edu/pub/bash/bash-4.2-patches/bash42-007 ftp://ftp.cwru.edu/pub/bash/bash-4.2-patches/bash42-008 ftp://ftp.cwru.edu/pub/bash/bash-4.2-patches/bash42-009 ftp://ftp.cwru.edu/pub/bash/bash-4.2-patches/bash42-010 ftp://ftp.cwru.edu/pub/bash/bash-4.2-patches/bash42-011 ftp://ftp.cwru.edu/pub/bash/bash-4.2-patches/bash42-012 ftp://ftp.cwru.edu/pub/bash/bash-4.2-patches/bash42-013 ftp://ftp.cwru.edu/pub/bash/bash-4.2-patches/bash42-014 ftp://ftp.cwru.edu/pub/bash/bash-4.2-patches/bash42-015 ftp://ftp.cwru.edu/pub/bash/bash-4.2-patches/bash42-016 ftp://ftp.cwru.edu/pub/bash/bash-4.2-patches/bash42-017 ftp://ftp.cwru.edu/pub/bash/bash-4.2-patches/bash42-018 ftp://ftp.cwru.edu/pub/bash/bash-4.2-patches/bash42-019 ftp://ftp.cwru.edu/pub/bash/bash-4.2-patches/bash42-020 mirror://gnu/bash/bash-4.2-patches/bash42-001 mirror://gnu/bash/bash-4.2-patches/bash42-002 mirror://gnu/bash/bash-4.2-patches/bash42-003 mirror://gnu/bash/bash-4.2-patches/bash42-004 mirror://gnu/bash/bash-4.2-patches/bash42-005 mirror://gnu/bash/bash-4.2-patches/bash42-006 mirror://gnu/bash/bash-4.2-patches/bash42-007 mirror://gnu/bash/bash-4.2-patches/bash42-008 mirror://gnu/bash/bash-4.2-patches/bash42-009 mirror://gnu/bash/bash-4.2-patches/bash42-010 mirror://gnu/bash/bash-4.2-patches/bash42-011 mirror://gnu/bash/bash-4.2-patches/bash42-012 mirror://gnu/bash/bash-4.2-patches/bash42-013 mirror://gnu/bash/bash-4.2-patches/bash42-014 mirror://gnu/bash/bash-4.2-patches/bash42-015 mirror://gnu/bash/bash-4.2-patches/bash42-016 mirror://gnu/bash/bash-4.2-patches/bash42-017 mirror://gnu/bash/bash-4.2-patches/bash42-018 mirror://gnu/bash/bash-4.2-patches/bash42-019 mirror://gnu/bash/bash-4.2-patches/bash42-020
|
||||
_eclasses_=eutils 33ef77a15337022e05342d2c772a7a5a flag-o-matic 01a8b1eb019305bc4b4a8bd0b04e4cd8 multilib 5f4ad6cf85e365e8f0c6050ddd21659e portability 0be430f759a631e692678ed796e09f5c toolchain-funcs 6526ac6fc9aedf391efb91fcd75ace68 user 9e552f935106ff0bc92af16da64b4b29
|
||||
_md5_=419e3e29a003f3def7e9a4a5caeeb94a
|
Loading…
Reference in New Issue
Block a user