This is the mail archive of the
gsl-discuss@sourceware.cygnus.com
mailing list for the GSL project.
Bug: Compiling broken on Linux/PPC
- To: gsl-discuss at sourceware dot cygnus dot com
- Subject: Bug: Compiling broken on Linux/PPC
- From: John Fisher <johnfish at uclink4 dot berkeley dot edu>
- Date: Mon, 05 Jun 2000 20:58:18 -0700
- Organization: University of California, Berkeley
Hi folks. This is my first post here.
GSL 0.6 does not build on my PowerPC machine running Linux (LinuxPPC
2000, though I imagine this problem would occur on all PPC
distributions). GCC 2.95.2 and glibc-2.1.3-4a.
The bug is in ieee-utils/fp-linux.c . The configure script doesn't
distinguish between Linux/PPC and Linux/x86; in assuming the latter it
uses the macros '_FPU_SINGLE', '_FPU_DOUBLE', '_FPU_EXTENDED',
'_FPU_MASK_DM' and '_FPU_MASK_PM' which are in the x86
/usr/include/fpu_control.h but not in the PowerPC counterpart.
I have a patch for the configure script to check for ppc machines, and a
patch to ieee-utils/fp-linux.c to use the new information and preprocess
out the unavailable macros. With the changes applied there were no
errors in building.
I have a log of 'make -k check', where seven subtests subsequently
fail. All seven failures are due to errors in precision which may have
been caused by the changes to fp-linux.c; I don't know how to verify
this, or of a workaround, given that the necessary macros are not part
of the PPC fpu_control.h. Here's one error, which is pretty much
representative of them all (both in magnitude and location -- 3 others
are also in the gsl_sf_hyperg_* family):
FAIL: gsl_sf_hyperg_U_int_impl(-90, 1, 10, &r)
test_hyperg.c 323
expected: -1.898767714922189e+139
obtained: -1.898767714922192e+139 1.543096725201747e+126
8.12683e-14
fracdiff: 6.962999882451004e-16
value not within tolerance of expected value
-1.8987677149221916e+139 1.54309672520174719e+126
I don't know if this is an acceptable result. Assuming it is, I'm not
sure if the second patch is particularly elegant. If it's preferred, I
could make a new file -- say ieee-utils/fp-ppclinux.c -- to be used
instead of the patch on fp-linux.c. If the accuracy is not acceptable,
I can look into it more -- I'd love to see this all working on my ppc
box!
Oh, what's protocol for this list? Should I just submit patches and
such here?
John