All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] gcc: Fix a race over unwind.h
@ 2014-04-10 10:10 Richard Purdie
  0 siblings, 0 replies; only message in thread
From: Richard Purdie @ 2014-04-10 10:10 UTC (permalink / raw)
  To: openembedded-core

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

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---
diff --git a/meta/recipes-devtools/gcc/gcc-4.8.inc b/meta/recipes-devtools/gcc/gcc-4.8.inc
index 855ec26..c320600 100644
--- a/meta/recipes-devtools/gcc/gcc-4.8.inc
+++ b/meta/recipes-devtools/gcc/gcc-4.8.inc
@@ -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"
diff --git a/meta/recipes-devtools/gcc/gcc-4.8/0051-fix-unwind-race.patch b/meta/recipes-devtools/gcc/gcc-4.8/0051-fix-unwind-race.patch
new file mode 100644
index 0000000..e4fff12
--- /dev/null
+++ b/meta/recipes-devtools/gcc/gcc-4.8/0051-fix-unwind-race.patch
@@ -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
+ 




^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2014-04-10 10:11 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-04-10 10:10 [PATCH] gcc: Fix a race over unwind.h Richard Purdie

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.