[R-SIG-Mac] building R under Lion

Kasper Daniel Hansen kasperdanielhansen at gmail.com
Wed Aug 29 16:52:02 CEST 2012


For other readers of the thread: apply the patch Simon gave and still
use  --with-blas='-framework vecLib'

Peter: Accelerate.h just includes vecLib.h (and also vImage.h), nothing else.

Simon: after looking at the header files, I agree that it seems
easiest to just define __ACCELERATE__.  It might also be possible to
define __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED, but I guess that
is likely to have other consequences.

Kasper


On Wed, Aug 29, 2012 at 9:27 AM, Simon Urbanek
<simon.urbanek at r-project.org> wrote:
>
> On Aug 29, 2012, at 2:29 AM, peter dalgaard wrote:
>
>>
>> On Aug 29, 2012, at 02:51 , Simon Urbanek wrote:
>>
>>> You were on the right path - it's only about renaming vecLib to Accelerate, so you just have to apply the patch below. It is annoying, since -framework vecLib still works just fine so you don't even need to change the configure flags. The patch will in some modified form make it to R eventually.
>>
>> Just to clarify: This is due to quite recent XCode changes? In my versions on Lion and Snow Leopard, Accelerate.h just #includes vecLib.h.
>>
>
> It's just yet another Apple nonsense in Mountain Lion - it still just includes vecLib but now vecLib checks whether __ACCELERATE__ is defined and bails out with an error if it's not ... So another work-around is to set CPPFLAGS=-D__ACCELERATE__
>
> Cheers,
> Simon
>
>
>>
>>>
>>> Cheers,
>>> Simon
>>>
>>>
>>> Index: vecLibg95c.c
>>> ===================================================================
>>> --- vecLibg95c.c     (revision 59442)
>>> +++ vecLibg95c.c     (working copy)
>>> @@ -2,7 +2,7 @@
>>> #include <config.h>
>>> #endif
>>>
>>> -#include <vecLib/vecLib.h>
>>> +#include <Accelerate/Accelerate.h>
>>>
>>> void F77_FUNC_(rcblas_cdotu_sub,)(const int *N, const void *X, const int *incX,
>>>                       const void *Y, const int *incY, void *dotu)
>>>
>>>
>>>
>>>
>>>
>>> On Aug 28, 2012, at 5:22 PM, Kasper Daniel Hansen wrote:
>>>
>>>> I am running Lion, with the newest version of Xcode, and the 5666
>>>> build of gcc+gfortran from Simon's page.  This is on Macbook pro last
>>>> generation, with a quad core i7.  I have installed the latest stable
>>>> release of Xquartz.
>>>>
>>>> I am building R, not as a framework (--disable-framework), but I am
>>>> using --with-blas='-framework vecLib' which at least used to be much
>>>> better than the built-in BLAS.
>>>>
>>>> My entire configure call is
>>>> ../${SRCDIR}/configure SHELL='/bin/bash' \
>>>> --prefix=/usr/local/R/R-${R_VERSION} --disable-R-framework\
>>>> CC="/usr/bin/gcc-4.2 -arch x86_64 -std=gnu99" \
>>>> CFLAGS="-g -O2 -std=gnu99 -march=nocona" \
>>>> CXX="/usr/bin/g++-4.2 -arch x86_64" \
>>>> CXXFLAGS="-g -O2 -march=nocona" \
>>>> OBJC="/usr/bin/gcc-4.2 -arch x86_64" \
>>>> F77="/usr/bin/gfortran-4.2 -arch x86_64" \
>>>> FFLAGS="-g -O2 -march=nocona" \
>>>> FC="/usr/bin/gfortran-4.2 -arch x86_64" \
>>>> FCFLAGS="-g -O2 -march=nocona" \
>>>> --enable-memory-profiling\
>>>> --x-includes=/usr/X11/include --x-libraries=/usr/X11/lib\
>>>> --with-system-zlib\
>>>> --with-blas='-framework vecLib' --with-lapack
>>>>
>>>> When I build R-2.15.1-patched, I get
>>>>
>>>> making internet.d from ../../../../R-2.15.x-src/src/modules/internet/internet.c
>>>> In file included from
>>>> ../../../../R-2.15.x-src/src/modules/lapack/vecLibg95c.c:5:
>>>> /System/Library/Frameworks/vecLib.framework/Headers/vecLib.h:22:4:
>>>> error: #error "<vecLib/vecLib.h> is deprecated.  Please #include
>>>> <Accelerate/Accelerate.h> and link to Accelerate.framework."
>>>> make[3]: *** [vecLibg95c.d] Error 1
>>>> make[2]: *** [make.lapack] Error 2
>>>> make[2]: *** Waiting for unfinished jobs....
>>>> making nanoftp.d from ../../../../R-2.15.x-src/src/modules/internet/nanoftp.c
>>>>
>>>> <SNIP>
>>>>
>>>> /usr/bin/gcc-4.2 -arch x86_64 -std=gnu99 -I. -I../../../src/include
>>>> -I../../../../R-2.15.x-src/src/include -I/usr/local/include
>>>> -DHAVE_CONFIG_H   -fopenmp -fPIC  -g -O2 -std=gnu99 -march=nocona   -c
>>>> ../../../../R-2.15.x-src/src/modules/internet/sockconn.c -o sockconn.o
>>>> /usr/bin/gcc-4.2 -arch x86_64 -std=gnu99 -dynamiclib
>>>> -Wl,-headerpad_max_install_names  -undefined dynamic_lookup
>>>> -single_module -multiply_defined suppress -L/usr/local/lib -o
>>>> internet.so Rhttpd.o Rsock.o internet.o nanoftp.o nanohttp.o sock.o
>>>> sockconn.o   -Wl,-framework -Wl,CoreFoundation
>>>> mkdir /Users/khansen/build/R/R-2.15.x-build/modules
>>>> make[1]: *** [R] Error 1
>>>> make: *** [R] Error 1
>>>>
>>>> So it seems that it does not like -framework vecLib.  I tried with
>>>> -framework Accelerate, but I get the same error.
>>>>
>>>> My guess is that there is some new thing I have to do here, but I
>>>> tried reading the admin guide for R-devel and could not see anything
>>>> particular (except I do not need -arch x86_64 anymore).
>>>>
>>>> Thanks,
>>>> Kasper
>>>>
>>>> _______________________________________________
>>>> R-SIG-Mac mailing list
>>>> R-SIG-Mac at r-project.org
>>>> https://stat.ethz.ch/mailman/listinfo/r-sig-mac
>>>>
>>>>
>>>
>>> _______________________________________________
>>> R-SIG-Mac mailing list
>>> R-SIG-Mac at r-project.org
>>> https://stat.ethz.ch/mailman/listinfo/r-sig-mac
>>
>> --
>> Peter Dalgaard, Professor,
>> Center for Statistics, Copenhagen Business School
>> Solbjerg Plads 3, 2000 Frederiksberg, Denmark
>> Phone: (+45)38153501
>> Email: pd.mes at cbs.dk  Priv: PDalgd at gmail.com
>>
>>
>>
>>
>>
>>
>>
>>
>>
>



More information about the R-SIG-Mac mailing list