Hi everyone, I'm finally joining the party here and so far made good progress following Taras' instructions.
Disclaimer - I'm new to working with R sources. But would be very happy to help with testing and reporting to accelerate support native M1 builds. I am using the R-4.0.3 sources with the latest gfortran release from François-Xavier Coudert: https://github.com/fxcoudert/gfortran-for-macOS/releases/tag/11-arm-alpha2 Currently I'm facing some issues at step 5. It seems that for some reasons liblzma cannot be found although it is well installed via xz at step 3. I also verified that the liblzma can be easily discovered along the lines of 3. The lines before ./configure stops are: ``` checking lzma.h usability... no checking lzma.h presence... no checking for lzma.h... no configure: error: "liblzma library and headers are required" ``` As mentioned, all is well installed in the include and lib directories at: /opt/homebrew/Cellar/xz/5.2.5 Would you have a suggestion where I should link the headers/library to be picked up by ./configure ? Best wishes, Denis On Wed, Nov 25, 2020 at 10:41 AM Taras Zakharko <taras.zakha...@uzh.ch> wrote: > > Creating a native Aarch64 build of R on my M1 machine was surprisingly > straightforward. Here is a step-by-step instruction of what I did in case > someone wants to replicate it: > > 1. Install native homebrew as described in this blog post under “Multiple > Homebrews” (https://soffes.blog/homebrew-on-apple-silicon). You will need to > manually chown a bunch of directories, keep an eye on brew output > > 2. Install the following brew packages > > brew install jpeg libpng libtiff pcre2 pkg-config tcl-tk xz zlib > > Again, pay attention to brew output, it is possible that you will have to > manually reset ownership on some directories > > 3. Make sure that zlib can be discovered by pkg-config by making it’s pc file > discoverable > > ln -s /opt/homebrew/Cellar/zlib/1.2.11/lib/pkgconfig/zlib.pc > /opt/homebrew/lib/pkgconfig/ > > 4. Install patched gfortran, I used the precompiled package from here: > > > https://github.com/fxcoudert/gfortran-for-macOS/releases/tag/11-arm-alpha1 > > 5. In config.site, add the paths to homebrew libraries: > > CPPFLAGS=-I/opt/homebrew/include > LDFLAGS=-L/opt/homebrew/lib > > Note: the R-admin manual tells to set CC, CXX, FC in config.sites, but it’s > not strictly necessary, the build will work without them > > 5. Run the configure script, I used > > ./configure --enable-R-shlib --without-x --enable-memory-profiling > --with-blas="-framework Accelerate” > > Check that the summary makes sense. If PNG is disabled, it’s probably > because you forgot step 3 > > 6. Build R > > make -j4 > > 7. Check that everything runs > > bin/R > > You should see something like "Platform: arm-apple-darwin20.2.0 (64-bit)” > in the startup message. > > All core tests seems to pass and the performance is excellent. > > I have tried building tidyverse and it blocked on testthat. It seems that > testthat uses a fairly old version of Catch which doesn’t detect platform > correctly and tries to use some x86 inline assembly during the arm build… > > > > On 23 Nov 2020, at 11:14, Prof Brian Ripley <rip...@stats.ox.ac.uk> wrote: > > > > As a follow-up, I now have a preliminary native build of R (using a > > gfortran compiled from sources forked from GCC and using minor > > modifications of Tomas Kalibera's instructions). > > > > The check timing was 148s, with Aqua (not X11) Tcl/Tk built from the > > sources and no X11 support, so not quite 100% comparable. > > > > Building the compiler took 45m elapsed with 100% CPU most of the time: the > > machine (which has no fan) remained cool (unlike my MBP which has a fan but > > rarely runs it and does get warm to the touch). > > > > There is a preliminary write-up on 'arm64' Macs in R-devel's R-admin manual > > (the version on CRAN is as usual a few days behind). > > > > On 17/11/2020 14:57, Prof Brian Ripley wrote: > >> Mine (a 8GB MBA) arrived today, so I have started doing some comparisons. > >> For the CRAN build of R 4.0.3, §2.8 of R-admin recommends checking the > >> installation with > >> pdf("tests.pdf") ## optional, but prevents flashing graphics windows > >> Sys.setenv(LC_COLLATE = "C", LC_TIME = "C", LANGUAGE = "en") > >> tools::testInstalledBasic("both") > >> tools::testInstalledPackages(scope = "base") > >> tools::testInstalledPackages(scope = "recommended") > >> That took 454s (using Rosetta) against 895s for my late-2016 MBP (2.9GHz > >> i5): happily nothing untoward was reported (some recommended packages give > >> differences from reference output on both systems). > >> You need to install XQuartz to provide the X11() devices and support for > >> package Tcl/Tk: everything I tried using that worked as expected. > >> Having done that post-installation check I would happily use the Intel R > >> on an M1 machine. > >> We plan to check many of the Intel-compiled packages under Rosetta. > >> There are many hours of work ahead to build/test a native toolchain: our > >> goal is to have a native distribution for R 4.1.0 ca April 2021. > > > > > > -- > > Brian D. Ripley, rip...@stats.ox.ac.uk > > Emeritus Professor of Applied Statistics, University of Oxford > > > > _______________________________________________ > > R-SIG-Mac mailing list > > R-SIG-Mac@r-project.org > > https://stat.ethz.ch/mailman/listinfo/r-sig-mac > > _______________________________________________ > R-SIG-Mac mailing list > R-SIG-Mac@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-sig-mac _______________________________________________ R-SIG-Mac mailing list R-SIG-Mac@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-mac