libunwind: Fix build race conflict with gcc and musl

Building libunwind, then gcc-runtime causes build failures. This is hard
to fix since gcc-runtime wants the internal gcc unwind.h header but libunwind
wants to provide this. There are differences in include behaviour between gcc
and glibc which are by design.

This patch hacks around the issue by looking for a define used during gcc-runtime's
build and skipping to the internal header in that case. The patch is only enabled
on musl and is the best workaround I could come up with to unblock failing builds
on our autobuilder.

[YOCTO #10129]

(From OE-Core rev: 793b6e57d7cf4a093223b4cd34085a929a5c43c3)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie 2016-08-18 14:46:32 +01:00
parent a220e2ca34
commit b24988bec7
2 changed files with 38 additions and 0 deletions

View File

@ -0,0 +1,37 @@
If you:
TCLIBC=musl bitbake unwind
TCLIBC=musl bitbake gcc-runtime -c cleansstate
TCLIBC=musl bitbake gcc-runtime
you will see libstdc++ fail to build due to finding libunwind's header file.
Khem: "When we build any of gcc components they expect to use internal version
and that works with glibc based gcc since the search headers first look into gcc
headers, however with musl the gcc headers are searched after the standard
headers ( which is by design the right thing )."
This patch hacks around the issue by looking for a define used during gcc-runtime's
build and skipping to the internal header in that case.
[YOCTO #10129]
RP 2016/8/18
Upstream-Status: Inappropriate [really need to fix gcc]
Index: git/include/unwind.h
===================================================================
--- git.orig/include/unwind.h
+++ git/include/unwind.h
@@ -23,6 +23,10 @@ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER L
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
+#ifdef _GLIBCXX_SHARED
+#include_next <unwind.h>
+#endif
+
#ifndef _UNWIND_H
#define _UNWIND_H

View File

@ -15,6 +15,7 @@ SRC_URI_append_libc-musl = "\
file://0001-x86-Stub-out-x86_local_resume.patch \
file://0001-disable-tests.patch \
file://0001-Fix-build-on-mips-musl.patch \
file://musl-header-conflict.patch \
"
SRC_URI[md5sum] = "fb4ea2f6fbbe45bf032cd36e586883ce"
SRC_URI[sha256sum] = "9dfe0fcae2a866de9d3942c66995e4b460230446887dbdab302d41a8aee8d09a"