Starting with glibc 2.10, test-float, test-double, test-ifloat, test-idouble fails on ia64. Some new tests have been added, and the generic maths code, the x86 and x86_64 maths codes have been adjusted, but not the ia64 one. Here is for example the testsuite failure I get for test-ifloat: testing float (without inline functions) Failure: Test: errno for cos(+inf) == EDOM Result: is: 0 should be: 33 Failure: Test: errno for cos(-inf) == EDOM Result: is: 0 should be: 33 Failure: Test: errno for sin(+inf) == EDOM Result: is: 0 should be: 33 Failure: Test: errno for sin(-inf) == EDOM Result: is: 0 should be: 33 Failure: Test: errno for tan(Inf) == EDOM Result: is: 0 should be: 33 Failure: Test: errno for tan(-Inf) == EDOM Result: is: 0 should be: 33 Failure: Test: errno for pow(0,-odd) == ERANGE Result: is: 33 should be: 34 Failure: Test: errno for pow(0,-odd) == ERANGE Result: is: 33 should be: 34 Failure: Test: errno for pow(-0,-odd) == ERANGE Result: is: 33 should be: 34 Failure: Test: errno for pow(-0,-odd) == ERANGE Result: is: 33 should be: 34 Failure: Test: errno for pow(0,-even) == ERANGE Result: is: 33 should be: 34 Failure: Test: errno for pow(0,-num) == ERANGE Result: is: 33 should be: 34 Failure: Test: errno for pow(-0,-even) == ERANGE Result: is: 33 should be: 34 Failure: Test: errno for pow(-0,-num) == ERANGE Result: is: 33 should be: 34 Failure: Test: errno for lgamma(-integer) == ERANGE Result: is: 33 should be: 34 Failure: Test: errno for fmod(Inf,3) unchanged Result: is: 0 should be: 33 Failure: Test: errno for fmod(-Inf,3) unchanged Result: is: 0 should be: 33 Test suite completed: 3008 test cases plus 2622 tests for exception flags executed. 17 errors occurred.
Created attachment 4105 [details] Patch to fix 9 of the 17 errors in test-float, test-double, test-ifloat and test-idouble
Created attachment 4106 [details] Patch to fix all the errors
Suspending until there is an IA64 maintainer to add IA64 back to ports, CCing Aurelien.
Unsuspending now ia64 is in ports, CC:ing IA64 maintainer for review of Aurelien's patch.
(In reply to Aurelien Jarno from comment #2) looks like this fixes a bunch of failures and is still applicable to latest git. could you send this patch to the mailing list please ?
Update from distant future: The patch still applies with only minor corrections and fixes some of the math errors, although not nearly all of them. Summary of test results before patch: 201 FAIL 4417 PASS 70 UNSUPPORTED 18 XFAIL 2 XPASS after patch: 183 FAIL 4488 PASS 20 UNSUPPORTED 18 XFAIL 2 XPASS I am currently working together with Frank Scheiner on fixing the remaining functions as a part of Itanium support for T2 SDE and Debian Ports. Current results have a few more passing tests after fixing errno of atanh familiy of functions to return ERANGE rather than EDOM when |x| = 1: 171 FAIL 4500 PASS 20 UNSUPPORTED 18 XFAIL 2 XPASS The in-progress patch is included in t2-trunk source at http://svn.exactcode.de/t2/trunk/package/base/glibc/math-fpu-error-partial-fix.patch.ia64 to provide a partial fix for T2 SDE users and periodically updated after testing. Once the patch is finished, I will send it to the glibc mailing list.
The master branch has been updated by Adhemerval Zanella <azanella@sourceware.org>: https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=460860f457e2a889785c506e8c77d4a7dff24d3e commit 460860f457e2a889785c506e8c77d4a7dff24d3e Author: Adhemerval Zanella <adhemerval.zanella@linaro.org> Date: Mon Jan 8 10:21:17 2024 -0300 Remove ia64-linux-gnu Linux 6.7 removed ia64 from the official tree [1], following the general principle that a glibc port needs upstream support for the architecture in all the components it depends on (binutils, GCC, and the Linux kernel). Apart from the removal of sysdeps/ia64 and sysdeps/unix/sysv/linux/ia64, there are updates to various comments referencing ia64 for which removal of those references seemed appropriate. The configuration is removed from README and build-many-glibcs.py. The CONTRIBUTED-BY, elf/elf.h, manual/contrib.texi (the porting mention), *.po files, config.guess, and longlong.h are not changed. For Linux it allows cleanup some clone2 support on multiple files. The following bug can be closed as WONTFIX: BZ 22634 [2], BZ 14250 [3], BZ 21634 [4], BZ 10163 [5], BZ 16401 [6], and BZ 11585 [7]. [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=43ff221426d33db909f7159fdf620c3b052e2d1c [2] https://sourceware.org/bugzilla/show_bug.cgi?id=22634 [3] https://sourceware.org/bugzilla/show_bug.cgi?id=14250 [4] https://sourceware.org/bugzilla/show_bug.cgi?id=21634 [5] https://sourceware.org/bugzilla/show_bug.cgi?id=10163 [6] https://sourceware.org/bugzilla/show_bug.cgi?id=16401 [7] https://sourceware.org/bugzilla/show_bug.cgi?id=11585 Reviewed-by: Carlos O'Donell <carlos@redhat.com>
ia64 has been removed from glibc.