Steve,

On May 5, 2009, at 9:03 PM, Steve Lianoglou wrote:

Thanks Duncan & Kasper, I've been able to squeeze out of my problem ...

Duncan:

You can pass configure args with the configure.args parameter to install.packages. I'm not sure how many you need to set, but you'll likely need to set CC, CPP, CXX, F77, FC, OBJC, and maybe some of the associated flags. You can see the list using "R CMD config" in the console.

The R CMD config was the trick. I actually put set those flags in my ~/.R/Makevars-PLATFORM file, as it seems the build step is picking these up so I don't have to pass them into the configure.args param. For the record, since I'm on a first generation MBP, the name of that file is "Makevars-i386-apple- darwin8.11.1", and it looks like:

CC=/usr/bin/gcc
CPP=/usr/bin/cpp
CXX=/usr/bin/g++
CXXCPP=/usr/bin/cpp
OBJC=/usr/bin/gcc

Kasper:

You will want to recompile R with the new compiler. Then, whenever you compile a package, it will use the same compiler as R was compiled with.

Thanks for the preemptive warning. On the computer where I'm having this problem, R is actually installed from the official cran installer, so I just needed to set it to use the apple gcc by default.

I have to assume that this R was also built w/ Apple's gcc, so perhaps R doesn't use the same compiler by default, as you suggest? I'm not sure.


R uses the Apple compiler, but I'm not hard-coding the full path. In your case apparently your PATH has /usr/local/bin before the system paths, so it overrides the default. Another (simpler?) way to solve this is to simply move /usr/local/bin at the end of your PATH (recommended) and all should be well without changing any config files.


Mixing compilers might be possible using the hints from Duncan, but I am pretty sure it is discouraged.

In the past Simon has discouraged use of the HPC compilers. I don't remember the reasons, but I respect the source of the information :) He knows way more about mac compilers than I do. Of course, this was a while back and things might have changed.

Yeah, I'd trust that source of information as well :-)

This kind of leads me into another related question, then. So, I actually d/l'd the HPC compiler so I can compile w/ -fopenmp (to use OpenMP for some easy parallelization).

You can use -fopenmp with Apple's compilers as well, just make sure you make the gcc-4.2 compilers the default (sudo gcc_select 4.2 if you have gcc_spect on your system, otherwise change the symlinks like ln - sf gcc-4.2 /usr/bin/gcc etc. - or specify them directly as you did). Apple's gcc-4.2 compilers are supported by the CRAN binary.


Does this mean that I shouldn't do that w/ a vanilla R install and perhaps recompile R from source w/ the HPC compiler? And if Simon doesn't like using the HPC compiler, then should we stay away from this in general?


In general, yes. As you have seen yourself the HPC compilers are not complete, so they cannot build universal binaries. Also they don't use Apple's driver, so all Apple-specific flags will fail. I didn't check the last HPC release, but before they were partially broken causing miscompilations, included wrong binaries (i.e. even the compiler for Tiger would include symbols for Leopard so the binary would not work), etc. I was trying to contact the maintainer a few times, but without avail, so I don't think it's well supported, either.

Cheers,
Simon

_______________________________________________
R-SIG-Mac mailing list
[email protected]
https://stat.ethz.ch/mailman/listinfo/r-sig-mac

Reply via email to