| Summary: | gcc-runtime fails to build if libunwind in sysroot with musl | ||
|---|---|---|---|
| Product: | [Build System, Metadata & Runtime] OE-Core | Reporter: | Leonardo Sandoval Gonzalez <leonardo.sandoval.gonzalez> |
| Component: | devtools / tool chain | Assignee: | Richard Purdie <richard.purdie> |
| Status: | RESOLVED FIXED | QA Contact: | |
| Severity: | major | ||
| Priority: | High | CC: | anibal.limon, meta.mr.watcher, meta.watcher, raj.khem, richard.purdie, ross.burton, sgw |
| Version: | 2.2 | ||
| Target Milestone: | 2.2 M3 | ||
| Hardware: | All | ||
| OS: | Multiple | ||
| Whiteboard: | |||
| OS type for building Yocto: | --- | Type of Regression: | --- |
| Verified: | Documentation change: | No (bug/feature does not impact docs) | |
|
Description
Leonardo Sandoval Gonzalez
2016-08-11 21:54:50 UTC
Log wasn't attached. I think http://errors.yoctoproject.org/Errors/Details/74601/ is the right one. You can replicate this on demand: TCLIBC=musl bitbake libunwind bitbake gcc-runtime -C configure (In reply to comment #2) > You can replicate this on demand: > > TCLIBC=musl > bitbake libunwind > bitbake gcc-runtime -C configure It sounds to similar build issue we have had while compiling gcc for target on musl. Issue here is that there are two unwind.h files. One coming from libunwind which is staged into /usr/include and another one is from gcc itself, which is also staged under gcc's include and fixed-include directories. 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 ) The problem however, then becomes that as soon as libunwind it staged it starts getting the wrong header where as it has been configured to use gcc's header This should be fixed in gcc sources itself, where it ensures that right header is included when its building itself and does not rely on compiler's paths to do the right thing. A short term solution could be to add a build time gcc-runtime dep to libunwind recipe so we are sure that gcc-runtime is built and staged before libunwind is built. Sadly, a dependency isn't enough. The system can install libunwind from sstate before gcc-runtime builds since there is no target do_populate_sysroot interdependency, nor should their be. |