On Thu, Feb 12, 2015 at 1:13 PM, Sergey Dmitrouk <[email protected] > wrote:
> How about the attached patch? Seems to work for me (it's trivial, but > syntax is weird, so I wasn't sure). It would prevent building unwind as a DSO without libc++abi linked in, so, this isn't the way to handle this. I think you need to tweak the detection of the -funwind-tables option. > > -- > Sergey > > On Thu, Feb 12, 2015 at 07:36:14AM -0800, Sergey Dmitrouk wrote: > > On Thu, Feb 12, 2015 at 07:13:09AM -0800, Saleem Abdulrasool wrote: > > > I've been successful with clang as well. > > > Reproduction steps would help in identifying what is happening. > > > > Looks like I found the culprit, it's CMake. I'm cross compiling > > libcxxabi for ARM on x86_64 host, compiler targets ARM only (so ARM is > > also the default target). cmake/config-ix.cmake contains (also note > "_c_" > > instead of "_cxx_", but it doesn't affect results): > > > > check_c_compiler_flag(-funwind-tables LIBCXXABI_HAS_FUNWIND_TABLES) > > > > This test fails on linking stage: > > > > CMakeFiles/cmTryCompileExec3829915952.dir/src.cxx.o:(.ARM.exidx+0x0): > > undefined reference to `__aeabi_unwind_cpp_pr0' > > > > because successful linking requires symbol defined in libunwind (and > that's > > what is being built). Now here: > > > > append_if(LIBUNWIND_COMPILE_FLAGS LIBCXXABI_HAS_NO_EXCEPTIONS_FLAG > -fno-exceptions) > > append_if(LIBUNWIND_COMPILE_FLAGS LIBCXXABI_HAS_NO_RTTI_FLAG > -fno-rtti) > > append_if(LIBUNWIND_COMPILE_FLAGS LIBCXXABI_HAS_FUNWIND_TABLES > -funwind-tables) > > > > `-fno-exceptions` is added, but not `-funwind-tables`. As a result > > libunwind sees "can't unwind" marker in exidx records and gives up. > > > > I found this bug report, which seems to be related: > > http://www.cmake.org/Bug/view.php?id=15264 > > > > Not adding `-fno-exceptions` flag if `-funwind-tables` isn't available > seems > > to be reasonable by itself, but will also work around this issue with > CMake. > > > > -- > > Sergey > -- Saleem Abdulrasool compnerd (at) compnerd (dot) org
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
