Since the stuff is heavily broken at this moment, shall we revert the detection stuff for a moment?
On Fri, Feb 13, 2015 at 7:36 PM, Saleem Abdulrasool <[email protected]> wrote: > 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 > -- With best regards, Anton Korobeynikov Faculty of Mathematics and Mechanics, Saint Petersburg State University _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
