Openembedded Core Discussions
 help / color / mirror / Atom feed
From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: openembedded-core <openembedded-core@lists.openembedded.org>
Subject: [PATCH] gcc: Fix a race over unwind.h
Date: Thu, 10 Apr 2014 11:10:54 +0100	[thread overview]
Message-ID: <1397124654.24597.239.camel@ted> (raw)

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
+ 




                 reply	other threads:[~2014-04-10 10:11 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1397124654.24597.239.camel@ted \
    --to=richard.purdie@linuxfoundation.org \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox