gcc: Fix a race over unwind.h

There are two places unwind.h is installed, even by the Makefile's admission.
Disable one of them to prevent build failure races.

(From OE-Core rev: d3b02218dcfedda8e4efb43b8fa6d13af8d91f78)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie 2014-04-10 10:09:01 +00:00
parent 97fd8c07d7
commit 3c77416b1b
2 changed files with 34 additions and 0 deletions

View File

@ -71,6 +71,7 @@ SRC_URI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2 \
file://0048-PR58854_fix_arm_apcs_epilogue.patch \
file://0049-Enable-SPE-AltiVec-generation-on-powepc-linux-target.patch \
file://0050-PR-target-58595.patch \
file://0051-fix-unwind-race.patch \
"
SRC_URI[md5sum] = "a3d7d63b9cb6b6ea049469a0c4a43c9d"
SRC_URI[sha256sum] = "09dc2276c73424bbbfda1dbddc62bbbf900c9f185acf7f3e1d773ce2d7e3cdc8"

View File

@ -0,0 +1,33 @@
These is a race over the installation of files into the include/ directory between:
| (cd `${PWDCMD-pwd}`/include ; \| tar -cf - .; exit 0) | (cd /home/pokybuild/yocto-autobuilder/yocto-slave/nightly-oecore/build/build/tmp-eglibc/work/armv5te-oe-linux-gnueabi/gcc-cross-initial/4.8.2-r0/image/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-oecore/build/build/tmp-eglibc/sysroots/x86_64-linux/usr/lib/armv5te-oe-linux-gnueabi.gcc-cross-initial/gcc/arm-oe-linux-gnueabi/4.8.2/include; tar xpf - )
and
| /bin/install -c -m 644 unwind.h /home/pokybuild/yocto-autobuilder/yocto-slave/nightly-oecore/build/build/tmp-eglibc/work/armv5te-oe-linux-gnueabi/gcc-cross-initial/4.8.2-r0/image/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-oecore/build/build/tmp-eglibc/sysroots/x86_64-linux/usr/lib/armv5te-oe-linux-gnueabi.gcc-cross-initial/gcc/arm-oe-linux-gnueabi/4.8.2/include
| /bin/install: cannot create regular file '/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-oecore/build/build/tmp-eglibc/work/armv5te-oe-linux-gnueabi/gcc-cross-initial/4.8.2-r0/image/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-oecore/build/build/tmp-eglibc/sysroots/x86_64-linux/usr/lib/armv5te-oe-linux-gnueabi.gcc-cross-initial/gcc/arm-oe-linux-gnueabi/4.8.2/include/unwind.h': File exists
| make[1]: *** [install-unwind_h] Error 1
which under the right circumstances leads to the above build failure. Since we don't
need two copies of this file and we don't use install-no-fixincludes, we can disable
the libgcc installation.
RP 2014/04/10
Upstream-Status: Pending [would need a rewrite into an acceptable patch form]
Index: gcc-4.8.2/libgcc/Makefile.in
===================================================================
--- gcc-4.8.2.orig/libgcc/Makefile.in 2013-02-04 19:06:20.000000000 +0000
+++ gcc-4.8.2/libgcc/Makefile.in 2014-04-10 09:58:33.018748787 +0000
@@ -1020,8 +1020,8 @@
# This is however useful for "install-no-fixincludes" case, when only the gcc
# internal headers are copied by gcc's install.
install-unwind_h:
- $(mkinstalldirs) $(DESTDIR)$(libsubdir)/include
- $(INSTALL_DATA) unwind.h $(DESTDIR)$(libsubdir)/include
+# $(mkinstalldirs) $(DESTDIR)$(libsubdir)/include
+# $(INSTALL_DATA) unwind.h $(DESTDIR)$(libsubdir)/include
all: install-unwind_h-forbuild