[swift-dev] Building swift-llvm fails when using build-script to cross compile due to multiple -isysroot arguments being in CFLAGS

ChrisBieneman beanz at apple.com
Sat Mar 19 14:05:56 CDT 2016


[Adding Vedant directly]

I'm not super familiar with the swift build scripts, but I have a theory of what is going wrong. I think the problem is that compiler-rt is being built during the cross build, and it really shouldn't be.

The compiler-rt build system has some significant flaws, and it is being reworked to resolve them. The problem causing this is that we have a hacked up CMake build process that generates multiple cross-targeted binaries from a single build configuration. I believe that compiler-rt's built-in hacky cross-targeting is tripping over however swift is supporting cross-targeting, and it is falling over.

With the current state of compiler-rt the right way to build it for Darwin is to treat it as host content, and it will build the Darwin-cross libraries too. Then you can pull the cross-libraries out and put them into the device build.

Vedant, if you have questions feel free to swing by my office on Monday.

-Chris

> On Mar 19, 2016, at 10:11 AM, Andrew Hyatt via swift-dev <swift-dev at swift.org> wrote:
> 
> (From /u/thegreatbeanz on reddit.com/r/swift)
> 
> So the problem here is actually that something has gone horribly wrong when configuring compiler- rt.
> You'll notice in the clang commands that it is building in this directory:
> clang_rt.builtins_armv7_10.4.dir
> What that means is it is building the clang_rt.10.4 archive which provides back ported library functions to OS X 10.4. Obviously 10.4 didn't support armv7 as an architecture, something has gone really wrong here.
> If you're on the latest swift it is probably a regression caused by 53f48f8. You need to email swift-dev to get support from Dmitri Gribenko and Vedant Kumar.
> Source: I wrote most of the compiler-rt builtin build system for Darwin.
> 
> Andrew Hyatt
> ahyattdev at icloud.com
> 
>> On Mar 19, 2016, at 9:26 AM, Andrew Hyatt via swift-dev <swift-dev at swift.org> wrote:
>> 
>> Building swift-llvm fails when using build-script to cross compile because build-script wrongly gives duplicate -isysroot arguments.
>> 
>> The full arguments that are given to clang by build-script while building LLVM are here: https://gist.github.com/ahyattdev/8ecc5d3808b9ee543a60
>> 
>> The command I use to build the compiler, using the latest sources from GitHub
>> 
>> utils/build-script -R -i -- --cross-compile-tools-deployment-targets "iphoneos-arm64 iphoneos-armv7 iphoneos-armv7s" --user-config-args="-DLLVM_ENABLE_BACKTRACES=Off"
>> 
>> This error occurs after the phase of building llvm for the host machine, and occurs during the cross compilation phase.
>> 
>> Andrew Hyatt
>> andythehyatt at gmail.com
>> 
>> _______________________________________________
>> swift-dev mailing list
>> swift-dev at swift.org
>> https://lists.swift.org/mailman/listinfo/swift-dev
> 
> _______________________________________________
> swift-dev mailing list
> swift-dev at swift.org
> https://lists.swift.org/mailman/listinfo/swift-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-dev/attachments/20160319/4f049f50/attachment.html>


More information about the swift-dev mailing list