[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: