[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