[PATCH] Make compiler-rt tests work with relocatable SDKs on OS X

Kuba Břečka kuba.brecka at gmail.com
Mon Jun 2 16:07:29 PDT 2014


Attaching patches.

Kuba


On Mon, Jun 2, 2014 at 4:06 PM, Kuba Břečka <kuba.brecka at gmail.com> wrote:
> Hi,
>
> I am trying to play a bit with ASan on OS X and I found out that on
> recent OS X releases, compiler-rt tests fail to build and run with
> CMake. That's because OS X now provides relocatable SDKs with Xcode
> and has no system-wide standard headers/libs. I am aware that
> currently compiler-rt tests are supported only with CMake.
>
> There are actually two issues:
>
> * Newly built clang binary can't find the platform SDK. Either the
> SDKROOT env has to be set or -isysroot passed on command line.
> * Newly build clang binary can't find c++ headers. It expects to find
> them in "../include/c++" relative to its binary. This issue goes away
> if you put libcxx into "llvm/projects/" and build libcxx
> simultaneously with llvm.
>
> My proposed patch adds OS X detection into CMake to add the -isysroot
> parameter and it creates a symlink pointing from the build directory's
> include/c++ into Xcode's toolchain (but only if you don't
> simultaneously build libcxx). It also moves a similar SDKROOT
> detection from clang's lit config into a util function and uses it in
> compiler-rt lit tests as well.
>
> One other solution to make the tests build and pass would be to
> enforce OS X users to set their SDKROOT env property (most OS X users
> don't have it set) and lit would need to be changed in a way to
> propagate this env property (it doesn't now). Installing a SDK into a
> system-wide location (e.g. /usr/include) is discouraged and deprecated
> on OS X, although manually installing Xcode Command Line Tools does
> that. Note that this will not solve the other issue (missing c++
> headers).
>
> The attached patch is three files, which should go into llvm,
> compiler-rt and clang projects respectively.
>
> Kuba Brecka
-------------- next part --------------
A non-text attachment was scrubbed...
Name: p1-llvm.patch
Type: application/octet-stream
Size: 942 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140602/57b60c5d/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: p2-compiler-rt.patch
Type: application/octet-stream
Size: 2927 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140602/57b60c5d/attachment-0001.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: p3-clang.patch
Type: application/octet-stream
Size: 897 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140602/57b60c5d/attachment-0002.obj>


More information about the llvm-commits mailing list