I don't know if this applies to Seija's case, but one instance that I've ran into when problem arose only with -O3 is uninitialized variables/arrays. Adding the initialization fixed the problem. Just one thing to check, I guess.
Best, Andy From: Prof Brian Ripley > > It is likely that this is related to using higher-precision FPU > registers, in which case there is a portable solution: look up > SAFE_FFLAGS in 'Writing R Extensions'. > > But if that is the cause, the real solution is to write the > code using > proper convergence tests. > > On Sat, 23 May 2009, Kasper Daniel Hansen wrote: > > > > > On May 20, 2009, at 4:32 , Seija Sirkiä wrote: > > > >> Hello again, > >> > >> thank you for the comments, especially this one: > >> > >> Prof Brian Ripley wrote: > >> > >>> My concern would be that there are different cases that fail under > >>> Fortran compiler X and you are just sweeping the problem under the > >>> carpet. > >> > >> It inspired us to go back to search the cause, and we've made some > >> progress: it's not the compiler, it's the compiler > options. Simple, but it > >> took a while to figure that out since my experience in > these things is > >> limited. When I build the package with default options > using INSTALL > >> --build the dll is built with option -O3 as per R's > Makeconfig file. If I > >> build the dll by hand, using gfortran with no additional > options and > >> dyn.load it, everything works, and also with -O and -Os. > (No, I don't fully > >> understand what the differences between all these are, but > that's another > >> question). > >> > >> I'm looking at chapter 5.5 in Writing R Extensions and > also 6.3.3 in R > >> Installation and Administration but I can't figure out how > to tell "inside" > >> my package that it is not to be built -O3 but with, say, > -O. I can see how > >> to add flags in the package (and as far as I can tell, if > there are several > >> optimization level flags the last in line is used and > that's the wrong one > >> from my point of view), and also how to override flags but > only on my > >> computer. Am I blind or am I again attempting something I > shouldn't? > > > > > > This is not trivial, and how you do it is compiler > dependent. A quick fix was > > provided by Simon Urbanek a while back and it is _not_ > portable, it assumes > > you are using GCC. It would be nice to have a configure > file that detects the > > compiler and optimization setting and then re-sets the > optimization level. I > > have thought about writing one, but have never got around to do it. > > > > Anyway, the fix is in the Makevars file from affxparser > from Bioconductor. > > Essentially, you use a Makevars file placed in the src > directory, containing > > > > MYCXXFLAGS=-O0 -Wall > > > > %.o: %.cpp > > $(CXX) $(ALL_CPPFLAGS) $(ALL_CXXFLAGS) $(MYCXXFLAGS) > -c $< -o $@ > > > > Essentially this makes sure that -O0 (indicating no > optimization) is placed > > at the _end_ of the call to the compiler (this is for C++ > files btw), using > > the fact that if you have two -O* settings, the last one > overrides the first. > > > > This ought to be easily adaptable to FORTRAN. > > > > Kasper > > > > ______________________________________________ > > R-devel@r-project.org mailing list > > https://stat.ethz.ch/mailman/listinfo/r-devel > > -- > Brian D. Ripley, rip...@stats.ox.ac.uk > Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ > University of Oxford, Tel: +44 1865 272861 (self) > 1 South Parks Road, +44 1865 272866 (PA) > Oxford OX1 3TG, UK Fax: +44 1865 272595 > Notice: This e-mail message, together with any attachme...{{dropped:12}} ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel