Yeah it all makes much more sense now. I was so stuck in the terminal I completely forgot there even was an Xcode project.
So I’ll submit a patch making the python script farm out to xcodebuild instead of trying to configure a Mac. > On 18 May 2016, at 16:35, Philippe Hausler <phaus...@apple.com> wrote: > > Yea, the python build scripts only work on Linux. Before the initial drop I > was tinkering with making it build both but the Xcode project was just > simpler and easier to maintain. Either use xcodebuild or use the Xcode IDE > instead of the ninja builders. > > It might be nice one day to unify the Linux and Darwin builds. Per the name > of Foundation versus SwiftFoundation it sidesteps the potentials of getting > confused with the system version (since they are not replaceable due to > object layouts among other things). > > Sent from my iPhone > >> On May 18, 2016, at 7:24 AM, Karl <razie...@gmail.com> wrote: >> >> To clarify: xctest tries to build Foundation using xcodebuild. Actually, I >> wonder why it didn’t use xcodebuild the first time. >> >> Maybe it should. Maybe that’s the way out of this. >> >>> On 18 May 2016, at 16:21, Karl <raziel.im+swift-us...@gmail.com> wrote: >>> >>> OSX 10.11.4, latest Xcode and SDKs. >>> >>> The Swift compiler is correct here - the CF header has an availability >>> attribute, but the Foundation symbol doesn’t. Either the Foundation symbol >>> needs to become less available, or the CF one needs to become more >>> available. >>> >>> I bypassed it by removing the restrictions from CF, but then I had a >>> problem at link time: CFRuntime has hardcoded symbols which require the >>> module name to be “SwiftFoundation”, but it’s defined (right at the top of >>> build.py) as being “Foundation” (and it’s always been like that since the >>> first commit). So I don’t know what’s correct - the hardcoded symbols, >>> which say it’s ‘SwiftFoundation’, or the build script, which has always >>> called it just ‘Foundation’. I don’t see how it ever compiled and linked on >>> OSX. >>> >>> That’s not all, either - there’s a clang bug (since version 5 apparently) >>> which causes it to emit calls to its own ___udivti3 builtin which it can’t >>> resolve, so you need to add a clang-specific hack to disable 128-bit >>> division in CFBigNum or it also won't link. >>> >>> After you do that, you can finally create libFoundation.dylib. >>> Unfortunately, I tried to build xctest afterwards. If you called the module >>> ‘Foundation’, it’ll fire up xcodebuild, which fails with those missing >>> symbols from CFRuntime - this time it wants them to be called >>> “SwiftFoundation”. So am I supposed to build it as SwiftFoundation? Okay, >>> so I did that. >>> >>> I don’t remember if xctest compiled fully (I don’t think it did...), then I >>> disabled it, and tried to build swiftpm instead. I managed to get most of >>> the way through that, but then it failed while trying to link ‘swift_build’ >>> because the link directory <foundation build dir>/Foundation didn’t exist >>> (of course it doesn't; it’s called SwiftFoundation now!). >>> >>> So now I’m just feeling like I opened a can of worms. >>> >>> >>>> On 18 May 2016, at 15:56, Philippe Hausler <phaus...@apple.com> wrote: >>>> >>>> We are keeping the CoreFoundation sources in sync with the one that is >>>> skipped with your SDK and the one running on your system. >>>> >>>> What version of Mac OS X are you running? What version of the SDK do you >>>> have? I have a feeling that a combination of those two may be the reason >>>> for those errors. >>>> >>>> Sent from my iPhone >>>> >>>>> On May 18, 2016, at 4:44 AM, Karl via swift-dev <swift-dev@swift.org> >>>>> wrote: >>>>> >>>>> I’m trying to fix Foundation on OSX (or am I doing something wrong? I was >>>>> surprised to find it didn’t build) >>>>> >>>>> I’ve run in to a problem, though: swift is telling me that certain APIs >>>>> are not available: >>>>> >>>>>> Foundation/NSNumberFormatter.swift:19:70: error: 'ordinalStyle' is only >>>>>> available on OS X 10.11 or newer >>>>>> internal let kCFNumberFormatterOrdinalStyle = >>>>>> CFNumberFormatterStyle.ordinalStyle >>>>>> ^ >>>>>> Foundation/NSNumberFormatter.swift:19:70: note: add @available attribute >>>>>> to enclosing let >>>>>> internal let kCFNumberFormatterOrdinalStyle = >>>>>> CFNumberFormatterStyle.ordinalStyle >>>>>> ^ >>>>> >>>>> That’s because the CoreFoundation headers have availability declarations >>>>> on them. >>>>> It obviously doesn’t make sense for us to keep them (and for the >>>>> resulting swift Foundation project to inherit them), because we’re >>>>> building a toolchain and defining all of those symbols, not linking >>>>> against the system versions. >>>>> >>>>> So in order to build CoreFoundation/Foundation for OSX, we’d need to >>>>> remove these declarations from the headers. Is there any problem with >>>>> that? Are they synced to anything at Apple HQ? >>>>> >>>>> Thanks >>>>> >>>>> Karl >>>>> _______________________________________________ >>>>> swift-dev mailing list >>>>> swift-dev@swift.org >>>>> https://lists.swift.org/mailman/listinfo/swift-dev >> _______________________________________________ swift-dev mailing list swift-dev@swift.org https://lists.swift.org/mailman/listinfo/swift-dev