[llvm-dev] [compiler-rt] Add iOS simulator link flag

Chris Bieneman via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 23 10:27:57 PDT 2015


There are known parallelization issues in the CMake-generated makefiles. They seem more common with LLVM_OPTIMIZED_TABLEGEN=On. The issue doesn’t exist when using ninja instead of make, and I haven’t had the time to track it down. I don’t know if it is a CMake bug, or a bug in our configuration.

Patches welcome.

-Chris

> On Sep 23, 2015, at 9:42 AM, Alex Wang <aw1621107 at gmail.com> wrote:
> 
> Alright, tried a manual build with clang and compiler-rt.
> Config command I used was:
> 
> cmake -G "Unix Makefiles" ../llvm -DCMAKE_VERBOSE_MAKEFILE=ON -DLLVM_OPTIMIZED_TABLEGEN=On -DLLVM_ENABLE_ASSERTIONS=On
> 
> Ran builds with 1, 2, 4, 8, 9 threads. Only got a failure on two of the four 9-threaded
> builds; tried the other ones once each.
> 
> For what it's worth, fully multi-threaded builds with one or none of the tablegen/assertion
> flags succeeded. The main difference I noticed from the failing config is that these builds
> didn't produce a NATIVE folder.
> 
> gist here: https://gist.github.com/aw1621107/b01fc73821895847a454 <https://gist.github.com/aw1621107/b01fc73821895847a454>
> 
> It does look like the SDK/linker issues are something with homebrew, so I'll go
> bother the homebrew maintainers instead. My apologies for the trouble.
> 
>> On Sep 22, 2015, at 6:07 PM, Chris Bieneman <beanz at apple.com <mailto:beanz at apple.com>> wrote:
>> 
>> Sadly I really can’t help you debug the home-brew build, it is a good ways outside my expertise.
>> 
>> If you want to try building from source using the guide here: http://llvm.org/docs/GettingStarted.html#getting-started-quickly-a-summary <http://llvm.org/docs/GettingStarted.html#getting-started-quickly-a-summary>
>> 
>> I’d be more helpful. As it is, the patch you proposed doesn’t seem to make it build via home-brew, and I don’t think we should be taking an effectively untested patch that doesn’t actually enable you to build.
>> 
>> You may want to take up this issue with whomever maintains the home-brew package you’re trying to build.
>> 
>> -Chris
>> 
>>> On Sep 22, 2015, at 2:50 PM, Alex Wang <aw1621107 at gmail.com <mailto:aw1621107 at gmail.com>> wrote:
>>> 
>>> Doesn't look like it's set when that command runs. 
>>> 
>>> The env during the build looks something like the first one here:
>>> https://gist.github.com/aw1621107/3e0b5a36d028f648d7a0 <https://gist.github.com/aw1621107/3e0b5a36d028f648d7a0>
>>> 
>>>> On Sep 22, 2015, at 5:42 PM, Chris Bieneman <beanz at apple.com <mailto:beanz at apple.com>> wrote:
>>>> 
>>>> The behavior here is consistent with setting SDKROOT in the environment to an OS X SDK.
>>>> 
>>>> -Chris
>>>> 
>>>>> On Sep 22, 2015, at 2:28 PM, Alex Wang <aw1621107 at gmail.com <mailto:aw1621107 at gmail.com>> wrote:
>>>>> 
>>>>> Logs + commands added to the earlier gist.
>>>>> 
>>>>> Only thing different from a plain trunk build is adding -Wl,-v and -Wl,-t to the
>>>>> iossim link flags.
>>>>> 
>>>>>> On Sep 22, 2015, at 5:17 PM, Chris Bieneman <beanz at apple.com <mailto:beanz at apple.com>> wrote:
>>>>>> 
>>>>>> Can you please provide the full error and information about the failure you saw without your patch?
>>>>>> 
>>>>>> Since you couldn’t build before the patch, and you can’t build with the patch. I suspect there is an underlying issue which isn’t being addressed.
>>>>>> 
>>>>>> -Chris
>>>>>> 
>>>>>>> On Sep 22, 2015, at 2:02 PM, Alex Wang <aw1621107 at gmail.com <mailto:aw1621107 at gmail.com>> wrote:
>>>>>>> 
>>>>>>> Whoops. Forgot to include what happened before the patch.
>>>>>>> 
>>>>>>> Without it, my build fails earlier with something along the lines of "Building for
>>>>>>> iOS simulator, but linking against file (libc++.dylib) built for OS X (x86_64)".
>>>>>>> The linker wasn't touching the iPhone SDK at all, instead going straight for
>>>>>>> /usr/lib/libc++.dylib. This also happened with libSystem.dylib, but I don't know
>>>>>>> what causes one library to fail vs the other.
>>>>>>> 
>>>>>>>> On Sep 22, 2015, at 4:57 PM, Chris Bieneman <beanz at apple.com <mailto:beanz at apple.com>> wrote:
>>>>>>>> 
>>>>>>>> In the failing command (iossim-log) the syslibroot flag is being specified to the linker and the link command still fails, so your patch shouldn’t fix the problem. You can see that listed in iossim-link.txt.
>>>>>>>> 
>>>>>>>> The other error is (if anything) more disturbing. You’re generating a malformed libLLVMSupport. Not sure how that’s happening.
>>>>>>>> 
>>>>>>>> It looks to me like there is something wrong with your host toolchain. I don’t really know what else to say, but your patch shouldn’t have any impact on this problem since that flag is already being specified in the failing commands you’ve shown.
>>>>>>>> 
>>>>>>>> -Chris
>>>>>>>> 
>>>>>>>>> On Sep 22, 2015, at 1:43 PM, Alex Wang via llvm-commits <llvm-commits at lists.llvm.org <mailto:llvm-commits at lists.llvm.org>> wrote:
>>>>>>>>> 
>>>>>>>>> Summary is linker fails with unknown symbol in iossim asan/ubsan (was _wordexp
>>>>>>>>> in the past, now is _sigaltstack$UNIX2003"i), or ranlib getting bad input while
>>>>>>>>> working on native tablegen (archive extends past end of file, no such file are
>>>>>>>>> the ones I remember)
>>>>>>>>> 
>>>>>>>>> Full commands + partial logs here:
>>>>>>>>>     https://gist.github.com/aw1621107/86fec1e1fa9cc66bbf4d <https://gist.github.com/aw1621107/86fec1e1fa9cc66bbf4d>
>>>>>>>>> 
>>>>>>>>> This was built on OS X 10.11, Xcode 7.1 using the following homebrew command
>>>>>>>>> and formula:
>>>>>>>>> 
>>>>>>>>>   brew install llvm --with-clang --with-sanitizers --HEAD --debug --verbose
>>>>>>>>>   https://github.com/aw1621107/homebrew/blob/llvm-updates/Library/Formula/llvm.rb <https://github.com/aw1621107/homebrew/blob/llvm-updates/Library/Formula/llvm.rb>
>>>>>>>>>> On Sep 22, 2015, at 4:08 PM, Joerg Sonnenberger via llvm-dev <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote:
>>>>>>>>>> 
>>>>>>>>>> On Tue, Sep 22, 2015 at 01:04:27PM -0700, Chris Bieneman via llvm-dev wrote:
>>>>>>>>>>> This does not sound right. -isysroot specified during linking should be passing through the sys root to the linker.
>>>>>>>>>> 
>>>>>>>>>> No? It should just be dropped.
>>>>>>>>>> 
>>>>>>>>>> Joerg
>>>>>>>>>> _______________________________________________
>>>>>>>>>> LLVM Developers mailing list
>>>>>>>>>> llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>
>>>>>>>>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev <http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev>
>>>>>>>>> 
>>>>>>>>> _______________________________________________
>>>>>>>>> llvm-commits mailing list
>>>>>>>>> llvm-commits at lists.llvm.org <mailto:llvm-commits at lists.llvm.org>
>>>>>>>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits <http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits>
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> 
>> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150923/72cf1ddc/attachment.html>


More information about the llvm-commits mailing list