https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57792
--- Comment #20 from Iain Sandoe <iains at gcc dot gnu.org> --- Unofficially (but after chatting with a couple of folks who know): "It should be assumed that depending on /usr/{include,lib} is unreliable". "The RightWay(™) for the system is deemed to be finding a suitable SDK root from "wherever". Yes, it's recognised that this is somewhat of a pain." === IMO we need to have a design that recognises that we (darwin support in GCC) have different objectives from Xcode. difference: #1 we support N-K (where N == host OS version, and K might be +/- some number > 1). This means that we want to be able to find SDKs for system versions that might not be included in the "current" Xcode. I don't like the idea of shoe-horning those (extra SDKs) into Xcode just so that it can find them - although I know folks already do that. - note that -mmacosx-version-min= and MACOSX_DEPLOYMENT_TARGET can go some way towards achieving part of those objectives - but it won't (for example) let you build for powerpc-darwin9 from x86-86-darwin13 [something I *do* often do]. difference #2 (at least I) have an objective that one day - hopefully not too far away, we will be able to cross-build for darwin ( > 9 ;) ) from other platforms, e.g. Linux. To that end I think we need a coherent design to cater for GCC's needs. My initial suggestion is that we don't try to (ab-)use sysroot for this, but instead add a --with-SDK-root= option that may be specified multiple times. We might eventually need the driver to try and find the best match for the SDK given a User "-mmacosx-version-min" and maybe even (one day) -mmacosx-version-max= .. This should have fall-backs as follows: xcrun … where that's available /Developer/SDKs (Darwin <= 9) / - essentially 'hope for the best' with /usr/{include,lib} I think there are adequate hooks in config/darwin-c.c to deal with this without impacting any part of the compiler outside the port [but that's without having tried it]. ==== I tend to agree that developers have to be prepared to understand a little about what their doing - but IMO the User of the compiler (someone just trying to build her code) should not have to jump through hoops to achieve that - at least for a host-native compile ;) I know Mike is not a fan of new C/L options, so I'm open to counter-proposals.