| Summary: | sys-libs/llvm-3.4.2 with sys-devel/gcc-4.7.4 - ClangCheck.cpp:(.text._xxxxxxxxx): undefined reference to `vtable for clang::tooling::FrontendActionFactory* ...' | ||
|---|---|---|---|
| Product: | Gentoo Linux | Reporter: | Andrew Church <achurch+gentoo> |
| Component: | Current packages | Assignee: | Michał Górny <mgorny> |
| Status: | RESOLVED OBSOLETE | ||
| Severity: | normal | CC: | as.gentoo, jstein, main.haarp, pva |
| Priority: | Normal | ||
| Version: | unspecified | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Package list: | Runtime testing required: | --- | |
| Attachments: |
build-logs.tar.xz
llvm-3.4.2.ebuild.patch |
||
|
Description
Andrew Church
2014-06-30 19:22:56 UTC
Same problem here and according to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61639 gcc is not going to fix this ) Created attachment 380094 [details, diff] llvm-3.4.2.ebuild.patch (In reply to Peter Volkov from comment #1) > Same problem here and according to > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61639 gcc is not going to fix > this ) Wow. I am seriously at a loss for words here... Attaching proof-of-concept of a possible workaround in the form of blocking gcc-4.7.4 in {llvm,clang}-3.[234]*.ebuild, though this subsequently causes sys-devel/gcc blocker errors with emerge -u so I may not be doing it right. FYI, clang-3.2 is also affected, so presumably likewise with {llvm,clang}-3.3, though I didn't test that version. clang-3.0 is not affected; llvm-3.1 failed to build for me, apparently because it doesn't use pkg-config to find libffi headers. Just hit this with llvm 3.5.0 and gcc 4.7.4 as well. Switching to gcc 4.8.x at least avoids it. So I guess we need to require gcc-4.8. Unconditionally or for this tool only? (for this tool = with USE=clang) A comment on the upstream bug suggests the problem is also present with gcc-4.9.1 (though it also suggests the root cause may lie elsewhere) so ">=gcc-4.8" may not be safe. I'll test with gcc-4.[89].* and report what I find.
In any case, it looks like we also need to allow gcc-4.7.[0-3] because gcc-4.8.* are not keyworded for ppc{,64} while llvm is. (Also, gcc-4.8.* are not yet stable but llvm-3.3-r3 is.)
Re: USE flags, the error does not occur building llvm-3.4.2 with USE=-clang so the gcc restriction can probably be conditional.
llvm-3.4.2 (USE=clang) builds fine with gcc-4.8.[0-3] and gcc-4.9.[01], so it's just gcc-4.7.4 that's bad. FWIW, llvm-3.5.0 was fine with gcc-4.9.1 as well. *** Bug 539332 has been marked as a duplicate of this bug. *** sys-libs/llvm-3.4.2 is no longer in the tree since a while. Please test with current packages and report a new ticket, if there is a similar bug. Closing here. |