Bug 10163

Summary: [ia64] Errors math testsuite on ia64
Product: glibc Reporter: Aurelien Jarno <aurelien>
Component: mathAssignee: Not yet assigned to anyone <unassigned>
Status: RESOLVED WONTFIX    
Severity: normal CC: adhemerval.zanella, aurelien, carlos, glibc-bugs, jason.duerstock, roland, sam, tglozar, vapier
Priority: P2 Flags: fweimer: security-
Version: unspecified   
Target Milestone: 2.39   
Host: ia64-unknown-linux-gnu Target: ia64-unknown-linux-gnu
Build: ia64-unknown-linux-gnu Last reconfirmed:
Project(s) to access: ssh public key:
Attachments: Patch to fix 9 of the 17 errors in test-float, test-double, test-ifloat and test-idouble
Patch to fix all the errors

Description Aurelien Jarno 2009-05-17 18:55:34 UTC
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.
Comment 1 Aurelien Jarno 2009-08-01 21:07:20 UTC
Created attachment 4105 [details]
Patch to fix 9 of the 17 errors in test-float, test-double, test-ifloat and test-idouble
Comment 2 Aurelien Jarno 2009-08-02 19:13:50 UTC
Created attachment 4106 [details]
Patch to fix all the errors
Comment 3 Joseph Myers 2012-02-22 17:12:18 UTC
Suspending until there is an IA64 maintainer to add IA64 back to ports, CCing Aurelien.
Comment 4 Joseph Myers 2012-04-23 09:53:05 UTC
Unsuspending now ia64 is in ports, CC:ing IA64 maintainer for review of Aurelien's patch.
Comment 5 Mike Frysinger 2013-12-30 17:09:49 UTC
(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 ?
Comment 6 Tomáš Glozar 2023-10-11 14:12:47 UTC
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.
Comment 7 Sourceware Commits 2024-01-08 20:09:51 UTC
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>
Comment 8 Adhemerval Zanella 2024-01-09 02:50:36 UTC
ia64 has been removed from glibc.