[Rd] How to ensure -O3 on Win64
Simon Urbanek
simon.urbanek at r-project.org
Thu Dec 27 18:53:07 CET 2012
On Dec 23, 2012, at 9:22 PM, Matthew Dowle wrote:
>
> Hi,
>
> Similar questions have come up before on the list and elsewhere but I haven't found a solution yet.
>
> winbuilder's install.out shows data.table's .c files compiled with -O3 on Win32 but -O2 on Win64. The same happens on R-Forge. I gather that some packages don't work with -O3 so the default is -O2.
>
> I've tried this in data.table's Makevars (entire contents) :
>
> ====
> MAKEFLAGS="CFLAGS=-O3" # added
> CFLAGS=-O3 # added
> PKG_CFLAGS=-O3 # added
> all: $(SHLIB) # no change
> mv $(SHLIB) datatable$(SHLIB_EXT) # no change
> ====
>
> but -O2 still appears in winbuilder's install.out (after -O3, and I believe the last -O is the one that counts) :
>
> gcc -m64 -I"D:/RCompile/recent/R-2.15.2/include" -DNDEBUG -I"d:/Rcompile/CRANpkg/extralibs215/local215/include" -O3 -O2 -Wall -std=gnu99 -mtune=core2 -c dogroups.c -o dogroups.o
>
> How can I ensure that data.table is compiled with -O3 on Win64?
>
You can't - at least not in a way that doesn't circumvent the R build system. Also it's not portable so you don't want to mess with optimization flags and hard-code it in your package as it's user's choice how they setup R and its flags. You can certainly setup your R to compile with -O3, you just can't impose that on others.
Cheers,
Simon
More information about the R-devel
mailing list