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

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to