Just a quick note: Xcode 9 will not presently create a working R on Sierra or earlier.
This is because it ships with an SDK for 10.13 (unreleased) and defines an entry for utimensat(), which is not actually in the system library for earlier versions. There is no way we can fix this reliably for the upcoming 3.4.2 release, so if you intend to build R from sources, either - just do not upgrade, stay on Xcode 8.3.3 or - manually remove the line from config.h saying #define HAVE_UTIMENSAT 1 ---- The slightly longer story is that Apple decided to have their include files generate a _warning_ that utimensat() is only available in 10.13, like this: gcc -I../../../R/src/extra -I. -I../../src/include -I../../../R/src/include -I/usr/local/include -I../../../R/src/nmath -DHAVE_CONFIG_H -g -O2 -c ../../../R/src/main/platform.c -o platform.o ../../../R/src/main/platform.c:2474:5: warning: 'utimensat' is only available on macOS 10.13 or newer [-Wunguarded-availability-new] utimensat(AT_FDCWD, to, times, 0); ^~~~~~~~~ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/stat.h:374:5: note: 'utimensat' has been explicitly marked partial here int utimensat(int __fd, const char *__path, const struct timespec __... ^ ../../../R/src/main/platform.c:2474:5: note: enclose 'utimensat' in a __builtin_available check to silence this warning utimensat(AT_FDCWD, to, times, 0); ^~~~~~~~~ ../../../R/src/main/platform.c:2890:11: warning: 'utimensat' is only available on macOS 10.13 or newer [-Wunguarded-availability-new] res = utimensat(AT_FDCWD, fn, times, 0) == 0; ^~~~~~~~~ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/stat.h:374:5: note: 'utimensat' has been explicitly marked partial here int utimensat(int __fd, const char *__path, const struct timespec __... ^ ../../../R/src/main/platform.c:2890:11: note: enclose 'utimensat' in a __builtin_available check to silence this warning res = utimensat(AT_FDCWD, fn, times, 0) == 0; ^~~~~~~~~ 2 warnings generated. Because of dynamic linking, we do not see the effect of this until we actually try running the binary: begin installing recommended package MASS dyld: lazy symbol binding failed: Symbol not found: _utimensat Referenced from: /Users/pd/r-release-branch/BUILD-dist/bin/exec/x86_64/R Expected in: /usr/lib/libSystem.B.dylib dyld: Symbol not found: _utimensat Referenced from: /Users/pd/r-release-branch/BUILD-dist/bin/exec/x86_64/R Expected in: /usr/lib/libSystem.B.dylib /Users/pd/r-release-branch/BUILD-dist/bin/INSTALL: line 34: 59149 Done echo 'tools:::.install_packages()' 59150 Abort trap: 6 | R_DEFAULT_PACKAGES= LC_COLLATE=C "${R_HOME}/bin/R" $myArgs --slave --args ${args} Same warning also happens during the configure checks, but as it is not an error the test program compiles and links OK (but is never run), and we get checking whether utimensat exists and is declared... yes Ugh!... - Peter D. -- Peter Dalgaard, Professor, Center for Statistics, Copenhagen Business School Solbjerg Plads 3, 2000 Frederiksberg, Denmark Phone: (+45)38153501 Office: A 4.23 Email: pd....@cbs.dk Priv: pda...@gmail.com _______________________________________________ R-SIG-Mac mailing list R-SIG-Mac@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-mac