Colleagues,
I have a routine in package labdsv that calls a FORTRAN subroutine.
Recently, I was informed that it sometimes gives different results on a
PC and Mac, and that the PC version is clearly wrong. I tested it on
linux (because I don't have a PC), and I get the same (incorrect)
behavior as the PC.
Simply by inserting debug WRITE statements in the FORTRAN I would get
different, and correct, results, so I assumed it was an optimization
error.
So,
1) R CMD SHLIB duleg.f does not work, and produces bogus code
however,
2) gfortran -c alt_duleg.f
gcc -O -std=gnu99 -shared -L/usr/local/lib -o alt_duleg.so
alt_duleg.o -lgfortran -lm -lgcc_s
does work (note the -O low optimization). Otherwise the gcc command is
identical to the one produced by R CMD SHLIB.
Has anyone else seen this? Is there a simple way to have my package
enforce no optimization so others don't struggle with this? As far as I
know the same code worked under g77.
Thanks, Dave Roberts
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
David W. Roberts office 406-994-4548
Professor and Head FAX 406-994-3190
Department of Ecology email [EMAIL PROTECTED]
Montana State University
Bozeman, MT 59717-3460
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel