[Rd] suppressing "global" cppflags in an individual package
hin-tak.leung at cimr.cam.ac.uk
Wed May 10 12:56:11 CEST 2006
Kasper Daniel Hansen wrote:
> It is indeed the case that after updating to GCC 4 the package gets
> broken using -O2. I agree this needs to be fixed, but the error (which I
> believe I have kind of localized, but not really understood) stems from
> a C++ library we have little control over, so it would be nice to have a
> fix for the time being that does not require a reinstallation of R -
> especially since we actually have users who currently (or soon will be)
> testing it. I was thus looking for a temporary quick fix allowing me to
> disable the optimization level, while I take the time to fix it properly.
> Kurt Hornik have replied of-list that it is possible to do so using a
> ~/.R/Makevars file (which I have not had the time to test
> unfortunately), but reading your comment about CPPFLAGS and CXXFLAGS
> makes me think I can indeed override it using the package Makevars file.
> The flags I was passing to the compiler were library locations anyway
> which was for the preprocessor.
Can't do that with Makevars, because its defines are included first (and
get overriden by R's built-time flags later in the command line), as
Simon on the list has pointed out.
If it is a one-off operation, you can be slightly barbaric and just
record all the operations done by R CMD SHLIB/INSTALL
e.g. piping them to a file with >& , edit the file manually and exec
the operations by "sh file", then copy the differently-built shared
library over by hand, over-writing the broken one. Not very elegant,
but it will buy you some time until either the compiler or the package
More information about the R-devel