[PATCH] Make compiler-rt tests work with relocatable SDKs on OS X
glider at google.com
Mon Jun 9 10:38:32 PDT 2014
Sorry, haven't had time to look yet.
Will try to do that tomorrow.
On Jun 6, 2014 11:44 PM, "Kuba Brecka" <kuba.brecka at gmail.com> wrote:
> 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
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-commits