Bug 10163 - [ia64] Errors math testsuite on ia64
Summary: [ia64] Errors math testsuite on ia64
Status: RESOLVED WONTFIX
Alias: None
Product: glibc
Classification: Unclassified
Component: math (show other bugs)
Version: unspecified
: P2 normal
Target Milestone: 2.39
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-05-17 18:55 UTC by Aurelien Jarno
Modified: 2024-01-09 02:50 UTC (History)
9 users (show)

See Also:
Host: ia64-unknown-linux-gnu
Target: ia64-unknown-linux-gnu
Build: ia64-unknown-linux-gnu
Last reconfirmed:
fweimer: security-


Attachments
Patch to fix 9 of the 17 errors in test-float, test-double, test-ifloat and test-idouble (434 bytes, patch)
2009-08-01 21:07 UTC, Aurelien Jarno
Details | Diff
Patch to fix all the errors (4.35 KB, patch)
2009-08-02 19:13 UTC, Aurelien Jarno
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
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.