On 9 Feb 2018, at 22:11, Dimitry Andric via Openmp-dev 
<openmp-...@lists.llvm.org> wrote:
> 
> On 9 Feb 2018, at 20:40, Dimitry Andric via cfe-dev <cfe-...@lists.llvm.org> 
> wrote:
>> 
>>> On 9 Feb 2018, at 10:20, Hans Wennborg <h...@chromium.org> wrote:
> ...
>>> What are all these test failures? Does it seems like they have a
>>> common root cause and do we have a bug for it?
> ...
>> The Clang Tools and Extra Tools Unit tests all appear to crash with:
>> 
>>   exception_ptr not yet implemented
> 
> This turns out to be caused by libc++ being compiled without -DLIBCXXRT.  (In 
> the FreeBSD base system build, we always add this option, so libc++ knows how 
> to handle exceptions.)
> 
> In the libc++ CMakeFiles, it appears to be governed by 
> LIBCXX_CXX_ABI_LIBNAME, but it isn't being set to the correct value of 
> "cxxrt" on FreeBSD.  I am going to try the following diff:
> 
> --- llvm.src/projects/libcxx/CMakeLists.txt
> +++ llvm.src/projects/libcxx/CMakeLists.txt
> @@ -135,6 +135,8 @@
>   elseif (APPLE)
>     set(LIBCXX_CXX_ABI_LIBNAME "libcxxabi")
>     set(LIBCXX_CXX_ABI_SYSTEM 1)
> +  elseif (CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
> +    set(LIBCXX_CXX_ABI_LIBNAME "libcxxrt")
>   else()
>     set(LIBCXX_CXX_ABI_LIBNAME "default")
>   endif()

... and unfortunately that didn't work, since the CMakeFiles are unable to find 
the libcxxrt headers:

CMake Warning at projects/libcxx/cmake/Modules/HandleLibCXXABI.cmake:67 
(message):
  Failed to find cxxabi.h
Call Stack (most recent call first):
  projects/libcxx/cmake/Modules/HandleLibCXXABI.cmake:112 (setup_abi_lib)
  projects/libcxx/CMakeLists.txt:428 (include)


CMake Warning at projects/libcxx/cmake/Modules/HandleLibCXXABI.cmake:67 
(message):
  Failed to find unwind.h
Call Stack (most recent call first):
  projects/libcxx/cmake/Modules/HandleLibCXXABI.cmake:112 (setup_abi_lib)
  projects/libcxx/CMakeLists.txt:428 (include)


CMake Warning at projects/libcxx/cmake/Modules/HandleLibCXXABI.cmake:67 
(message):
  Failed to find unwind-arm.h
Call Stack (most recent call first):
  projects/libcxx/cmake/Modules/HandleLibCXXABI.cmake:112 (setup_abi_lib)
  projects/libcxx/CMakeLists.txt:428 (include)


CMake Warning at projects/libcxx/cmake/Modules/HandleLibCXXABI.cmake:67 
(message):
  Failed to find unwind-itanium.h
Call Stack (most recent call first):
  projects/libcxx/cmake/Modules/HandleLibCXXABI.cmake:112 (setup_abi_lib)
  projects/libcxx/CMakeLists.txt:428 (include)

The problem is that on FreeBSD, these libcxxrt headers are installed into the 
same location as the base system's libc++ headers, which is 
/usr/include/c++/v1, and if I add that to the include path of libc++'s build, 
it will certainly cause conflicts.

Does anybody have a suggestion on how this could be avoided?

-Dimitry



Attachment: signature.asc
Description: Message signed with OpenPGP

_______________________________________________
lldb-dev mailing list
lldb-dev@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev

Reply via email to