[Please cc me, as I am not on this list.] When installing the clang8 MacOS binary by wget <clang-binaries-tarball-url> tar -xf clang* cd clang* sudo mkdir /usr/local/clang8 sudo cp -R * /usr/local/clang8 the compiler works on MacOS 10.13, but not on MacOS 10.14, with an error: /usr/local/clang/bin/../include/c++/v1/stdio.h:108:15: fatal error: 'stdio.h' file not found #include_next <stdio.h> ^~~~~~~~~ The distribution does not seem to contain any other file stdio.h.
Hi Hans, On Fri, 14 Jun 2019 at 05:07, Hans Åberg via llvm-dev <llvm-dev at lists.llvm.org> wrote:> The distribution does not seem to contain any other file stdio.h.You're going to need a normal copy of Xcode installed to provide the system headers and libraries; and macOS has been moving away from putting anything in /usr/include even with the command line tools. So you probably need to add an extra sysroot argument to your clang invocation, pointing it at the Xcode installation: -isysroot $(xcrun --show-sdk-path macosx). Alternatively I believe you can set the SDKROOT environment variable to that path, if adding CFLAGS is too tricky. Build systems often detect all this for you (I know CMake does). Cheers. Tim.
> On 14 Jun 2019, at 09:58, Tim Northover <t.p.northover at gmail.com> wrote: > > On Fri, 14 Jun 2019 at 05:07, Hans Åberg via llvm-dev > <llvm-dev at lists.llvm.org> wrote: >> The distribution does not seem to contain any other file stdio.h. > > You're going to need a normal copy of Xcode installed to provide the > system headers and libraries; and macOS has been moving away from > putting anything in /usr/include even with the command line tools. > > So you probably need to add an extra sysroot argument to your clang > invocation, pointing it at the Xcode installation: -isysroot $(xcrun > --show-sdk-path macosx). Alternatively I believe you can set the > SDKROOT environment variable to that path, if adding CFLAGS is too > tricky. Build systems often detect all this for you (I know CMake > does).I am using autotools: If setting, in ./configure, CXXFLAGS to contain that explicitly, which is -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/‘ then the configure script will not look into /usr/local/.
> On 14 Jun 2019, at 09:58, Tim Northover <t.p.northover at gmail.com> wrote: > > So you probably need to add an extra sysroot argument to your clang > invocation, pointing it at the Xcode installation: -isysroot $(xcrun > --show-sdk-path macosx). Alternatively I believe you can set the > SDKROOT environment variable to that path, if adding CFLAGS is too > tricky.I can configure and compile by adding a soft link sudo ln -s /usr/local /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/local And then pass to configure the preprocessor argument CPPFLAGS='-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/ -I /usr/local/include’
On 2019-06-14 09:58, Tim Northover via llvm-dev wrote:> You're going to need a normal copy of Xcode installed to provide the > system headers and libraries; and macOS has been moving away from > putting anything in /usr/include even with the command line tools.Exactly. Installing the command line tools on macOS 10.13 will create /usr/include, but not on 10.14. To get /usr/include on macOS 10.14 you need to install an extra package: sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target / Have a look at: https://apple.stackexchange.com/questions/337940/why-is-usr-include-missing-i-have-xcode-and-command-line-tools-installed-moja -- /Jacob Carlborg