Summary: | [GTK][OSX] webkit-gtk 2.11.2 fails to link libllvmForJSC.dylib on OS X due to duplicate (local) abort and raise symbols | ||
---|---|---|---|
Product: | WebKit | Reporter: | Jeremy Huddleston Sequoia <jeremyhu> |
Component: | JavaScriptCore | Assignee: | Nobody <webkit-unassigned> |
Status: | RESOLVED WONTFIX | ||
Severity: | Normal | CC: | bugs-noreply, mcatanzaro, philip.chimento |
Priority: | P2 | ||
Version: | Safari 9 | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
See Also: | https://llvm.org/bugs/show_bug.cgi?id=26174 | ||
Bug Depends on: | |||
Bug Blocks: | 126492 |
Description
Jeremy Huddleston Sequoia
2016-01-01 14:53:02 PST
Some history here... the llvm-provided definitions are conditional on: #if defined(__APPLE__) && defined(ENABLE_CRASH_OVERRIDES) The llvm ones are there to redefine raise() as: return pthread_kill(pthread_self(), sig); compared to the system definition as: return(kill(getpid(), s)); --- The wording of the comment around this is: // On Darwin, raise sends a signal to the main thread instead of the current // thread. This has the unfortunate effect that assert() and abort() will end up // bypassing our crash recovery attempts. We work around this for anything in // the same linkage unit by just defining our own versions of the assert handler // and abort. While raise() does behave as described, I changed the behavior of abort() in Lion (10.7) to use pthread_kill() instead of raise(). I think it best to handle removal of the llvm overrides, and I'll file a bug at llvm.org for that. Additionally, libllvmForJSC.dylib is linking in the static archive directly instead of libLLVM-3.7.dylib. Again, this isn't a bug in webkit as it is just doing what llvm-config --libs instructs it to. I'll file a bug at llvm.org for that as well. Given the above, do we want to add a workaround in webkit or detect the problem during configure? (In reply to comment #1) > Additionally, libllvmForJSC.dylib is linking in the static archive directly > instead of libLLVM-3.7.dylib. Again, this isn't a bug in webkit as it is > just doing what llvm-config --libs instructs it to. I'll file a bug at > llvm.org for that as well. We added a workaround so that we could dynamic link to LLVM right after the 2.11.3 release: http://trac.webkit.org/changeset/195009 Try it out! Ok, given that, I think we can close this out. |