[R-SIG-Mac] Compiling packages from source under Mojave (10.14.x)

Simon Urbanek @|mon@urb@nek @end|ng |rom R-project@org
Fri Apr 5 15:31:54 CEST 2019


Thanks, I have finally traced it down. It is a combination of the removal of headers from system location *and* our custom toolchain. Apple's macOS 10.14 clang builds automatically insert the path to the SDK:

"/Library/Developer/CommandLineTools/usr/bin/clang" -cc1 -triple x86_64-apple-macosx10.14.0 [...] -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk [...]

#include <...> search starts here:
 /usr/local/include
 /Library/Developer/CommandLineTools/usr/lib/clang/10.0.0/include
 /Library/Developer/CommandLineTools/usr/include
 /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include
 /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks (framework directory)

Whereas out clang6 build uses the system location:

#include <...> search starts here:
 /usr/local/include
 /usr/local/clang6/lib/clang/6.0.0/include
 /System/Library/Frameworks (framework directory)
 /Library/Frameworks (framework directory)

So, similar to the R-admin suggestions all that's needed is
-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
and hope that Apple will maintain the non-versioned symlink to the SDK. I'll see if I can release a new build of clang that will use it automatically. From my tests so far that location is valid all the way down to 10.11 so should work for us.

Probably the fastest fix for now if you just need to install a package is to set
PKG_CPPFLAGS='-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk'

It will work as long as you use the command line tools (recommended) - if you use Xcode directly you may need to check its location with xcrun --show-sdk-path

Cheers,
Simon



> On Apr 4, 2019, at 4:19 PM, Roy Mendelssohn - NOAA Federal via R-SIG-Mac <r-sig-mac using r-project.org> wrote:
> 
> Hi Simon:
> 
> here goes.  I was running 10.13.xx,  xx being whatever was the most recent version.  I was compiling packages from source no problem.  Also,  the Upgrade Section of App Store was telling me there was an incompatible version of software available,  which was a new version of Xcode.
> 
> I upgraded to 10.14.4,  by the usual means,  did nothing special.
> 
> Upgrades in App Store said there was a new version of Xcode (among other things).  So installed that.
> 
> Ran Xcode,  so that it would install "Other Components" which it often does with a new version.
> 
> To be certain I had the Command lIne Tools,  in a terminal I ran:   sudo xcode-select --install
> 
> Next time I ran RStudio,  two package upgrades were from source  (I apologize I don't remember which packages).  Compilation failed with errors of couldn't find the appropriate header files.
> 
> Ran the command in my note.
> 
> Restarted RStudio,  asked it to check for package updates,  same packages appeared,  compilation went fine.
> 
> I am running Xcode 10.2
> 
> HTH,
> 
> -Roy
> 
> 
>> On Apr 4, 2019, at 12:26 PM, Simon Urbanek <simon.urbanek using R-project.org> wrote:
>> 
>> Roy,
>> 
>> thanks, but can you give some details? I'm on a Mojave system and don't see any issues - this will likely depend on your Xcode installation. Does it mean some Xcode version is lacking headers? Which version, how did you install it?
>> 
>> Thanks,
>> Simon
>> 
>> 
>>> On Mar 30, 2019, at 2:21 PM, Roy Mendelssohn - NOAA Federal via R-SIG-Mac <r-sig-mac using r-project.org> wrote:
>>> 
>>> I recently updated to Mojave and all of a sudden I was getting header not found errors when trying to compile packages.  I was pretty certain my Makevars files was correct,  as I had been compiling before the upgrade successfully,  and the compilers hadn't changed.
>>> 
>>> The following is in some of the docs,  but just in case it helps,  cause it took me awhile to find it,  after installing the Command Line Tools for Xcode,  you should run:
>>> 
>>> sudo installer -pkg \
>>> /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg \
>>> -target /
>>> 
>>> and voila packages that had failed to compile just a few minutes ago compiled successfully.
>>> 
>>> Hope this helps someone.
>>> 
>>> -Roy
>>> 
>>> 
>>> **********************
>>> "The contents of this message do not reflect any position of the U.S. Government or NOAA."
>>> **********************
>>> Roy Mendelssohn
>>> Supervisory Operations Research Analyst
>>> NOAA/NMFS
>>> Environmental Research Division
>>> Southwest Fisheries Science Center
>>> ***Note new street address***
>>> 110 McAllister Way
>>> Santa Cruz, CA 95060
>>> Phone: (831)-420-3666
>>> Fax: (831) 420-3980
>>> e-mail: Roy.Mendelssohn using noaa.gov www: http://www.pfeg.noaa.gov/
>>> 
>>> "Old age and treachery will overcome youth and skill."
>>> "From those who have been given much, much will be expected" 
>>> "the arc of the moral universe is long, but it bends toward justice" -MLK Jr.
>>> 
>>> _______________________________________________
>>> R-SIG-Mac mailing list
>>> R-SIG-Mac using r-project.org
>>> https://stat.ethz.ch/mailman/listinfo/r-sig-mac
>> 
> 
> **********************
> "The contents of this message do not reflect any position of the U.S. Government or NOAA."
> **********************
> Roy Mendelssohn
> Supervisory Operations Research Analyst
> NOAA/NMFS
> Environmental Research Division
> Southwest Fisheries Science Center
> ***Note new street address***
> 110 McAllister Way
> Santa Cruz, CA 95060
> Phone: (831)-420-3666
> Fax: (831) 420-3980
> e-mail: Roy.Mendelssohn using noaa.gov www: http://www.pfeg.noaa.gov/
> 
> "Old age and treachery will overcome youth and skill."
> "From those who have been given much, much will be expected" 
> "the arc of the moral universe is long, but it bends toward justice" -MLK Jr.
> 
> _______________________________________________
> R-SIG-Mac mailing list
> R-SIG-Mac using r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-sig-mac



More information about the R-SIG-Mac mailing list