[R-SIG-Mac] R-3.0.0: choice of gfortran compiler in install.packages()
Davor Cubranic
cubranic at stat.ubc.ca
Thu May 9 00:28:51 CEST 2013
I don't see this on my machine:
> install.packages('fields', type='source')
* installing *source* package 'fields' ...
** package 'fields' successfully unpacked and MD5 sums checked
** libs
gfortran-4.2 -arch x86_64 -fPIC -g -O2 -c css.f -o css.o
gfortran-4.2 -arch x86_64 -fPIC -g -O2 -c csstr.f -o csstr.o
gfortran-4.2 -arch x86_64 -fPIC -g -O2 -c cvrf.f -o cvrf.o
gfortran-4.2 -arch x86_64 -fPIC -g -O2 -c dchold.f -o dchold.o
gfortran-4.2 -arch x86_64 -fPIC -g -O2 -c dcopy.f -o dcopy.o
gfortran-4.2 -arch x86_64 -fPIC -g -O2 -c ddfind.f -o ddfind.o
gfortran-4.2 -arch x86_64 -fPIC -g -O2 -c ddot.f -o ddot.o
gfortran-4.2 -arch x86_64 -fPIC -g -O2 -c derrb.f -o derrb.o
gfortran-4.2 -arch x86_64 -fPIC -g -O2 -c dlv.f -o dlv.o
gfortran-4.2 -arch x86_64 -fPIC -g -O2 -c dmaket.f -o dmaket.o
gfortran-4.2 -arch x86_64 -fPIC -g -O2 -c drdfun.f -o drdfun.o
gfortran-4.2 -arch x86_64 -fPIC -g -O2 -c dsetup.f -o dsetup.o
gfortran-4.2 -arch x86_64 -fPIC -g -O2 -c evlpoly.f -o evlpoly.o
gfortran-4.2 -arch x86_64 -fPIC -g -O2 -c evlpoly2.f -o evlpoly2.o
gfortran-4.2 -arch x86_64 -fPIC -g -O2 -c expfn.f -o expfn.o
gfortran-4.2 -arch x86_64 -fPIC -g -O2 -c ifind.f -o ifind.o
gfortran-4.2 -arch x86_64 -fPIC -g -O2 -c igpoly.f -o igpoly.o
gfortran-4.2 -arch x86_64 -fPIC -g -O2 -c inpoly.f -o inpoly.o
gfortran-4.2 -arch x86_64 -fPIC -g -O2 -c mltdrb.f -o mltdrb.o
gfortran-4.2 -arch x86_64 -fPIC -g -O2 -c mltdtd.f -o mltdtd.o
gfortran-4.2 -arch x86_64 -fPIC -g -O2 -c multeb.f -o multeb.o
gfortran-4.2 -arch x86_64 -fPIC -g -O2 -c multrb.f -o multrb.o
gfortran-4.2 -arch x86_64 -fPIC -g -O2 -c radbas.f -o radbas.o
gfortran-4.2 -arch x86_64 -fPIC -g -O2 -c radfn2.f -o radfn2.o
gfortran-4.2 -arch x86_64 -fPIC -g -O2 -c radfun.f -o radfun.o
gfortran-4.2 -arch x86_64 -fPIC -g -O2 -c rcss.f -o rcss.o
gfortran-4.2 -arch x86_64 -fPIC -g -O2 -c rcssr.f -o rcssr.o
gfortran-4.2 -arch x86_64 -fPIC -g -O2 -c rcsswt.f -o rcsswt.o
gfortran-4.2 -arch x86_64 -fPIC -g -O2 -c sortm.f -o sortm.o
llvm-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 -L/usr/local/lib -o fields.so css.o csstr.o cvrf.o dchold.o dcopy.o ddfind.o ddot.o derrb.o dlv.o dmaket.o drdfun.o dsetup.o evlpoly.o evlpoly2.o expfn.o ifind.o igpoly.o inpoly.o mltdrb.o mltdtd.o multeb.o multrb.o radbas.o radfn2.o radfun.o rcss.o rcssr.o rcsswt.o sortm.o -L/usr/local/lib/gcc/i686-apple-darwin8/4.2.3/x86_64 -L/usr/local/lib/x86_64 -L/usr/local/lib/gcc/i686-apple-darwin8/4.2.3 -lgfortran -F/Library/Frameworks/R.framework/.. -framework R -Wl,-framework -Wl,CoreFoundation
ld: warning: directory not found for option '-L/usr/local/lib/gcc/i686-apple-darwin8/4.2.3/x86_64'
ld: warning: directory not found for option '-L/usr/local/lib/x86_64'
ld: warning: directory not found for option '-L/usr/local/lib/gcc/i686-apple-darwin8/4.2.3'
installing to /private/tmp/library/fields/libs
** R
** data
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded
* DONE (fields)
I'm also running R-3.0.0 and OS X 10.7.5, so I think the issue is your environment. Why do you have gfortran in /usr/local anyways? CRAN's fortran goes into /usr/bin.
Note that you set FC and F77 to "gfortran-4.2" (no path), so that will look for it in your PATH, and you probably have /usr/local/gfortran/bin before /usr/bin. Try either removing /usr/local/gfortran directory or make sure the one in /usr/bin is found first.
Davor
On 2013-05-07, at 4:30 PM, Andy Jacobson (NOAA Affiliate) wrote:
> Howdy,
>
> I am attempting to install the fields_6.7.6 package under R-3.0.0 on OS X 10.7.5. I think the install process is calling the wrong gfortran compiler. The compiler being called is /usr/local/gfortran/bin/gfortran, which is "GNU Fortran (GCC) 4.4.0 20090321 (experimental) [trunk revision 144983]". I've installed the gfortran-4.2.3.pkg package from http://cran.r-project.org/bin/macosx/tools/gfortran-4.2.3.pkg.
>
> The /Library/Frameworks/R.framework/Versions/3.0/Resources/etc/Makeconf file specifies:
>
> FC = gfortran-4.2 -arch x86_64
> and
> F77 = gfortran-4.2 -arch x86_64
>
> The text output from install.packages() shows lots of -c compilation using this wrong gfortran, then attempts to link with llvm-gcc-4.2. The linking step complains about the .o files being architecture i386, which is probably wrong output from the gfortran-4.4.0 compiler:
>
>> /usr/local/gfortran/bin/gfortran -fPIC -g -O2 -c sortm.f -o sortm.o
>> llvm-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/gfortran/lib/ -o fields.so css.o csstr.o cvrf.o dchold.o dcopy.o ddfind.o ddot.o derrb.o dlv.o dmaket.o drdfun.o dsetup.o evlpoly.o evlpoly2.o expfn.o ifind.o igpoly.o inpoly.o mltdrb.o mltdtd.o multeb.o multrb.o radbas.o radfn2.o radfun.o rcss.o rcssr.o rcsswt.o sortm.o -L/usr/local/lib/gcc/i686-apple-darwin8/4.2.3/x86_64 -L/usr/local/lib/x86_64 -L/usr/local/lib/gcc/i686-apple-darwin8/4.2.3 -lgfortran -F/Library/Frameworks/R.framework/.. -framework R -Wl,-framework -Wl,CoreFoundation
>> ld: warning: ld: warning: ignoring file css.o, file was built for i386 which is not the architecture being linked (x86_64): css.oignoring file csstr.o, file was built for i386 which is not the architecture being linked (x86_64): csstr.o
>
>
>
> There's no Makefile in the fields package, so FC and F77 are not being overridden by the package itself, I believe. The FC and F77 variables from R's Makeconf are not being respected, and I've tried to specify alternative gfortran compilers with syntax like:
>
>
> install.packages("fields",type="source",repos="http://cran.us.r-project.org",clean=TRUE,configure.vars=list(F77="gfortran-4.2 -arch x86_64",FC="gfortran-4.2 -arch x86_64"))
>
> Nothing I do seems to tell the fields package to use the proper gfortran compiler. I have no environment variables like FC or F77 defined. I have to admit that I do have four different gfortran versions installed on this machine: in addition to the R pkg version and the gfortran-4.4.0, there's a fink /sw/bin/gfortran 4.6.2, and a /usr/bin/gfortran-4.2 which claims to come from Apple (GNU Fortran (GCC) 4.2.1 (Apple Inc. build 5566)). I'm up to date with Xcode.
>
> Any advice about how to do this correctly would be much appreciated!
>
> Thanks,
>
> Andy
> --
> Andy Jacobson
> andy.jacobson at noaa.gov
>
> NOAA Earth System Research Lab
> Global Monitoring Division
> 325 Broadway R/GMD1
> Boulder, Colorado 80305
>
> 303/578-2237
>
> _______________________________________________
> R-SIG-Mac mailing list
> R-SIG-Mac at r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-sig-mac
More information about the R-SIG-Mac
mailing list