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