Re: About r-base on the powerpc.
>>>>> "KM" == Konstantinos Margaritis <kmargar@cc.uoa.gr> writes:
KM> I was about to fill a bug report on this, but I thought I
KM> asked first.
KM> In r-base 0.63.2/src/unix/system.c there are two references to
KM> the C function setfpucw
KM> #ifdef linux
KM> __setfpucw(_FPU_IEEE);
KM> #endif
KM> line 626:
KM> #ifdef linux
KM> __setfpucw(_FPU_DEFAULT);
KM> #endif
KM> There is an obvious problem as to why this package could not be
KM> built. The final executable get compiled and linked with g77,
KM> while this function is available ONLY in libc (version that I
KM> have is 2.0.100). Compilation was fine, but linking failed with
KM> an unresolved symbol in __setfpucw.
KM> I tried commenting out this line, and guess what, it
KM> succeeded. Then, I thought "yeah, but all tests will
KM> fail". Guess again, all tests were successful. Then I
KM> considered that this command was not really that needed after
KM> all and proceeded to building the package, which was also
KM> successful.
KM> So what do you say? I have also CC'd to the package
KM> maintainer. Is this a bug to fill a report, or is this specific
KM> to my specific setup (what is the status on other platforms reg
KM> this package?)
It is unfortunately a result of assuming that "linux" means the i386
architecture. Those calls are to set the floating point control word
on the Intel processors for IEEE behavior or for the default behavior.
Let me check with some of the folks in the R-core group on what is the
best way to trap on both Linux and Intel for those calls. It may even
be possible to avoid those calls entirely. I believe that the Linux
standard now is to default to IEEE floating point rounding, even on
the Intel processors.
Reply to: