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

Kuba Břečka kuba.brecka at gmail.com
Fri Jun 6 12:40:56 PDT 2014


Here it is: http://reviews.llvm.org/D4047

Kuba


On Tue, Jun 3, 2014 at 3:39 AM, Kostya Serebryany <kcc at google.com> wrote:
> May I ask you to use llvm.org/docs/Phabricator.html ?
>
>
> On Tue, Jun 3, 2014 at 3:07 AM, Kuba Břečka <kuba.brecka at gmail.com> wrote:
>>
>> 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
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>
>




More information about the llvm-commits mailing list