[R-SIG-Mac] Building R 4.0.2 from source via clang/xcode for MKL on macOS
Kasper Daniel Hansen
k@@perd@n|e|h@n@en @end|ng |rom gm@||@com
Tue Sep 29 13:27:19 CEST 2020
To use veclib you need
--with-blas="-framework Accelerate"
My full building script on OS X is currently
../${SRCDIR}/configure SHELL='/bin/bash' \
--prefix=/usr/local/R/${R_VERSION} --disable-R-framework\
CC="/usr/local/clang8/bin/clang" \
CXX="/usr/local/clang8/bin/clang++" \
F77="/usr/local/gfortran/bin/gfortran" \
FC="/usr/local/gfortran/bin/gfortran" \
OBJC="clang" \
CFLAGS="-Wall -mtune=native -g -O2" \
CXXFLAGS="-Wall -mtune=native -g -O2" \
OBJCFLAGS="-Wall -mtune=native -g -O2 -fobjc-exceptions" \
F77FLAGS="-Wall -g -O2 -mtune=generic" \
FCFLAGS="$F77FLAGS" \
FLIBS="-L/usr/local/gfortran/lib/gcc/x86_64-apple-darwin15/6.1.0
-L/usr/local/gfortran/lib -lgfortran -lquadmath -lm" \
LDFLAGS="-L/usr/local/clang8/lib -L/usr/local/lib" \
DYLD_FALLBACK_LIBRARY_PATH="/usr/local/clang8/lib:/usr/local/lib" \
PKG_CONFIG_PATH="/opt/X11/lib/pkgconfig:/usr/local/lib/pkgconfig:/usr/lib/pkgconfig"
\
JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Home" \
JAVA_CPPFLAGS="-I/System/Library/Frameworks/JavaVM.framework/Headers" \
JAVA_LD_LIBRARY_PATH="" \
JAVA_LIBS="-framework JavaVM" \
--enable-memory-profiling\
--x-includes=/opt/X11/include --x-libraries=/opt/X11/lib\
--with-blas="-framework Accelerate" | tee ../configure-${R_VERSION}
although I think we have moved back to Apple's clang for C etc compiler for
the CRAN version of R instead of Simon's clang8.
Best,
Kasper
On Tue, Sep 29, 2020 at 9:53 AM roy <rollinforall using gmail.com> wrote:
> Hi Simon,
> Thanks for the info. I was totally unaware of ABI, vecLib, etc and that
> Apple has blas, lapack, etc. But after reading up on this and re-reading
> your email, I'm beginning to understand more about this.
>
> So, I would like to first checkout vecLib. From what you say, would I have
> to do something like the following?
>
> ./configure --enable-BLAS-shlib --with-blas="-lBLAS" ...
>
> Is this also possible with LAPACK?
>
> tx again.
> cheers, roy
>
>
> On Mon, Sep 28, 2020 at 3:01 PM Simon Urbanek <simon.urbanek using r-project.org
> >
> wrote:
>
> > Rollin,
> >
> > it has been several years since I last tested MKL, so take it with a
> grain
> > of salt, but in general you don't necessarily have to build R with MKL in
> > order to use it - you only need to use --enable-BLAS-shlib and link to
> any
> > ABI-compatible BLAS which can be vecLib as well. Then you can change the
> > link from vecLib to MKL in the BLAS stub. Note that we only need the C
> ABI,
> > there are wrappers vecLibg95f.* which re-map the F entry points to C
> entry
> > points as to avoid Fortran ABI issues thus you don't care about the
> > Fortran. However, historically, MKL has not been much more performant
> than
> > vecLib so it's unclear if it is worth the hassle. As with any accelerated
> > BLAS, note that this may have effects on results in R.
> >
> > Cheers,
> > Simon
> >
> >
> >
> > > On 28/09/2020, at 7:07 PM, rollin <rollinforall using gmail.com> wrote:
> > >
> > > I wanted to build R from source on macos (10.15.5) so I could include
> > > Intel's MKL. So I first looked at building R from source without MKL.
> > >
> > > From the installation doc, I modified config.site to have the
> following:
> > >
> > > CC=clang
> > > OBJC=$CC
> > > FC=/usr/local/bin/gfortran
> > > CXX=clang++
> > >
> > >
> > > I then ran configuration via the command:
> > >
> > > ./configure -C --enable-R-shlib --enable-memory-profiling
> > > --x-includes=/opt/X11/include --x-libraries=/opt/X11/lib
> > >
> >
> PKG_CONFIG_PATH=/opt/X11/lib/pkgconfig:/usr/local/lib/pkgconfig:/usr/lib/pkgconfig
> > >
> > >
> > > And received the following information and error:
> > >
> > > checking if bzip2 version >= 1.0.6... no
> > > checking whether bzip2 support suffices... configure: error: bzip2
> > library
> > > and headers are required
> > >
> > >
> > > By looking at the log, I saw a compiler error due to an implicit
> > function.
> > > I then made the following change in config.site:
> > >
> > > CFLAGS='-Wno-implicit-function-declaration -g -O2''
> > >
> > >
> > > And configure now ran without errors.
> > >
> > > However, when I looked at configuring to use MKL, I discovered that MKL
> > on
> > > macos does not support gnu fortran so, unless I purchase Intel's
> Fortran
> > > compiler, it looks like I'm sol.
> > >
> > > Has anyone built R with MKL on macos (10.15)? In any event, I wanted
> to
> > at
> > > least note the issue and work around I encountered when building R on
> > > macos with clang/xcode.
> > >
> > > [[alternative HTML version deleted]]
> > >
> > > _______________________________________________
> > > R-SIG-Mac mailing list
> > > R-SIG-Mac using r-project.org
> > > https://stat.ethz.ch/mailman/listinfo/r-sig-mac
> >
> >
>
> [[alternative HTML version deleted]]
>
> _______________________________________________
> R-SIG-Mac mailing list
> R-SIG-Mac using r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-sig-mac
>
--
Best,
Kasper
[[alternative HTML version deleted]]
More information about the R-SIG-Mac
mailing list