XCode 11 Update

I made the dumb mistake of updating XCode before my thesis was finished. Now I’m getting this error.

warning: no such sysroot directory: ‘/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk’

Anyone got an easy fix? Is there a way to insulate my root install from XCode updates or is the solution to just never update?

ROOT Version: 6.19/01
Platform: Mac
Compiler: Not Provided


You ‘just’ need to rebuild from scratch (if you are more adventurous you can also do a search for 10.14.sdk in CMakeCache.txt and use the -U option of cmake to redo the calculation of the cmake variable that refers to this directory).

Cheers,
Philippe.

I have a big presentation due this week that I’d hate to get derailed from by a rebuild of Root.

What exactly does this error mean? My program leans heavily on Roofit and seems to still be running ok. I know you have no possible way of knowing exactly what dependencies I have going on, but is it possible I could get away with just putting this rebuild off for a week?

Actually, no, rebuilding from scratch didn’t do it for me b/c there was no system update to go with the xcode update, so cmake still looks for 10.14 and only setting MACOSX_DEPLOYMENT_TARGET would convince it otherwise.

If you don’t want to rebuild, get an old SDK from here:
https://github.com/phracker/MacOSX-SDKs/releases
or direct link:
https://github.com/phracker/MacOSX-SDKs/releases/download/10.14-beta4/MacOSX10.14.sdk.tar.xz
Just unzip in the SDKs directory and you’re good to go. (Yes, I know, it says beta for 10.14, but it works fine on my system.)

Aside, I’ve hacked my local cling to not demand non-existing sysroot and simply use what’s there. That works fine, even without rebuilding the PCH.

@usccaa did you see the message at run-time (in which case Wim’s answer is more appropriate than mine) or compile-time?

[Also if things works as is, just go ahead and continue using it for now; you can always start a build of ROOT in the background in a new build directory]

whenever I start a Root session, I get the error

Yes, but if you have a pre-existing PCH built for 10.14 (which you do if this is a standard ROOT install), my experience is that you can treat the error as a warning.

Ah, so if I’m understanding correctly:
a) this is a warning
b) wait until MacOS update to rebuild Root to resolve warning
c) if I’m worried about the warning I can download an old SDK to use until the MacOS update releases

correct?

AFAIK, yes. Just for context: I’m currently playing with creating portable binaries for conda. Right now, I have 6 different SDKs on my Mac, looking for differences and problems spots.

For a) note that historically the standard C++ headers lived under SDKs and only for more recent MacOSX-es do they now live under Toolchains (where it’s still under the same version, v1). So when that particular line of code was written, it really was an error.

For c) another thing that is pretty safe is to put a symlink of MacOSX10.14.sdk to MacOSX.sdk in SDKs. To be sure, a quick diff -wr shows plenty of differences, just nothing fundamental in the headers that ROOT would care about.