Bug 82844 - [10/11/12/13 Regression] Many ada tests time out on x32
Summary: [10/11/12/13 Regression] Many ada tests time out on x32
Status: WAITING
Alias: None
Product: gcc
Classification: Unclassified
Component: ada (show other bugs)
Version: 8.0
: P4 normal
Target Milestone: 10.5
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-11-05 15:20 UTC by H.J. Lu
Modified: 2022-06-28 10:33 UTC (History)
3 users (show)

See Also:
Host: x32
Target: x32
Build:
Known to work:
Known to fail:
Last reconfirmed: 2017-11-05 00:00:00


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description H.J. Lu 2017-11-05 15:20:44 UTC
Between

commit 88d1247af311afb63a8ca464ae09d5b7a275724c
Author: pmderodat <pmderodat@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Mon Sep 25 08:40:27 2017 +0000

    2017-09-25  Ed Schonberg  <schonberg@adacore.com>
    
            * sem_ch12.adb (Save_References_In_Aggregate): Small correction to
            previous change.
    
    2017-09-25  Hristian Kirtchev  <kirtchev@adacore.com>
    
            * exp_ch5.adb, sem_ch4.adb, sem_ch13.adb, sem_attr.adb, exp_ch3.adb:
            Minor reformatting.
    
    
    
    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253135 138bc75d-0d04-0410-961f-82ee72b054a4

and

commit 2d2d4c5b6ab083e65fb10e42c11dd68548fdc036 (HEAD)
Author: ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Mon Oct 2 19:38:06 2017 +0000

            PR ada/82384
            * libgnarl/s-linux__x32.ads (suseconds_t): New subtype.
            (time_t): Change from derived type to subtype.
            (timeval): Use suseconds_t for tv_usec.
            * libgnarl/s-osinte__x32.adb (To_Timespec): Remove use type clause.
    
    
    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253366 138bc75d-0d04-0410-961f-82ee72b054a4

many ada tests time out on x32.  This regression is probably introduced by

2017-09-25  Doug Rupp  <rupp@adacore.com>

        * libgnarl/s-taprop__linux.adb (Base_Monotonic_Clock): New variable.
        (Compute_Base_Monotonic_Clock): New function.
        (Timed_Sleep): Adjust to use Base_Monotonic_Clock.
        (Timed_Delay): Likewise.
        (Monotonic_Clock): Likewise.
        * s-oscons-tmplt.c (CLOCK_MONOTONIC): Use on Linux.
Comment 1 H.J. Lu 2017-11-05 15:22:36 UTC
This happens only when GCC is compiled as the native x32 binary.
Comment 2 Eric Botcazou 2017-11-05 17:17:06 UTC
So is the given range of revisions meaningful in the end?
Comment 3 H.J. Lu 2017-11-05 19:18:27 UTC
(In reply to H.J. Lu from comment #1)
> This happens only when GCC is compiled as the native x32 binary.

There are 2 issues to track down which change caused the regression:

1. A GCC subversion checkin contains multiple changes.
2. One of the changes:

2017-09-25  Doug Rupp  <rupp@adacore.com>

        * libgnarl/s-taprop__linux.adb (Base_Monotonic_Clock): New variable.
        (Compute_Base_Monotonic_Clock): New function.
        (Timed_Sleep): Adjust to use Base_Monotonic_Clock.
        (Timed_Delay): Likewise.
        (Monotonic_Clock): Likewise.
        * s-oscons-tmplt.c (CLOCK_MONOTONIC): Use on Linux.

broke x32 built, which wasn't fixed until

commit 2d2d4c5b6ab083e65fb10e42c11dd68548fdc036 (HEAD)
Author: ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Mon Oct 2 19:38:06 2017 +0000

            PR ada/82384
            * libgnarl/s-linux__x32.ads (suseconds_t): New subtype.
            (time_t): Change from derived type to subtype.
            (timeval): Use suseconds_t for tv_usec.
            * libgnarl/s-osinte__x32.adb (To_Timespec): Remove use type clause.
    
    
    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253366 138bc75d-0d04-0410-961f-82ee72b054a4

If there is a git repo where a single commit contains only a single
change, I can track down exactly which change caused this.
Comment 4 Eric Botcazou 2017-11-05 23:21:32 UTC
> If there is a git repo where a single commit contains only a single
> change, I can track down exactly which change caused this.

The question was only whether you are 100% sure that this was broken between 09/05 and 10/02, or if this was only an interpolation.

IOW what are the dates of the last good run and the first bad run you have got?
Comment 5 H.J. Lu 2017-11-06 00:04:54 UTC
(In reply to Eric Botcazou from comment #4)
> > If there is a git repo where a single commit contains only a single
> > change, I can track down exactly which change caused this.
> 
> The question was only whether you are 100% sure that this was broken between
> 09/05 and 10/02, or if this was only an interpolation.
> 
> IOW what are the dates of the last good run and the first bad run you have
> got?

The last good subversion checkin is r253135.
Comment 6 Eric Botcazou 2017-11-06 07:25:09 UTC
> The last good subversion checkin is r253135.

And the first revision for which you have the timeouts?
Comment 7 H.J. Lu 2017-11-06 14:06:48 UTC
(In reply to Eric Botcazou from comment #6)
> > The last good subversion checkin is r253135.
> 
> And the first revision for which you have the timeouts?

That is r253366. X32 failed to build between r253136 and r253365.
Comment 8 Pierre-Marie de Rodat 2017-11-06 16:00:16 UTC
(In reply to H.J. Lu from comment #7)
> That is r253366. X32 failed to build between r253136 and r253365.

Ok, thanks! We still have patches in the pipeline in this area (s-taprop* files), so I’ll try to port them. Hopefully this will fix the issue.
Comment 9 Pierre-Marie de Rodat 2017-11-09 10:51:48 UTC
I’ve setup an Ubuntu VM, installed libx32 runtime libraries and built with “--with-multilib-list=m32,m64,mx32” + ran the testsuite (“make -C gcc -j8 -k check-ada”), without reproducing the issues you describe. Is there something obvious missing?

[I’ve since resumed porting GNAT patches, so hopefully the issue will disappear on your side]
Comment 10 H.J. Lu 2017-11-09 12:58:38 UTC
(In reply to Pierre-Marie de Rodat from comment #9)
> I’ve setup an Ubuntu VM, installed libx32 runtime libraries and built with
> “--with-multilib-list=m32,m64,mx32” + ran the testsuite (“make -C gcc -j8 -k
> check-ada”), without reproducing the issues you describe. Is there something
> obvious missing?

I used

CC="gcc -mx32 -fno-lto" CXX="g++ -mx32 -fno-lto" RUNTESTFLAGS="--target_board='unix{-m64,-m32,}'" /export/gnu/import/git/sources/gcc/configure --with-demangler-in-ld --enable-languages=c,c++,fortran,lto,objc,ada,obj-c++,go  --prefix=/usr/gcc-8.0.0-mx32 --with-local-prefix=/usr/local --enable-gnu-indirect-function --enable-clocale=gnu --with-system-zlib --enable-checking=yes,rtl --enable-libmpx --with-multilib-list=m32,m64,mx32 --enable-linker-build-id --enable-gnu-unique-object --with-abi=mx32 --with-fpmath=sse

--with-abi=mx32 will bootstrap GCC in x32.  You need to make sure that
linker in x32 is your PATH.  I have

[hjl@gnu-4 kernel]$ file /usr/localx32/bin/ld
/usr/localx32/bin/ld: ELF 32-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /libx32/ld-linux-x32.so.2, for GNU/Linux 3.4.0, BuildID[sha1]=bd1d06d57ab8d91756c97b170430590bac9253ea, with debug_info, not stripped
[hjl@gnu-4 kernel]$
Comment 11 Jakub Jelinek 2018-05-02 10:03:51 UTC
GCC 8.1 has been released.
Comment 12 Jakub Jelinek 2018-07-26 10:58:31 UTC
GCC 8.2 has been released.
Comment 13 Eric Botcazou 2018-07-26 15:58:39 UTC
Is is still present?
Comment 14 H.J. Lu 2018-07-26 16:04:01 UTC
(In reply to Eric Botcazou from comment #13)
> Is is still present?

Yes, nothing is changed.
Comment 15 Jakub Jelinek 2019-02-22 15:18:43 UTC
GCC 8.3 has been released.
Comment 16 Jakub Jelinek 2020-03-04 09:40:08 UTC
GCC 8.4.0 has been released, adjusting target milestone.
Comment 17 Jakub Jelinek 2021-05-14 09:49:27 UTC
GCC 8 branch is being closed.
Comment 18 Richard Biener 2021-06-01 08:09:32 UTC
GCC 9.4 is being released, retargeting bugs to GCC 9.5.
Comment 19 Richard Biener 2022-05-27 09:37:45 UTC
GCC 9 branch is being closed
Comment 20 Jakub Jelinek 2022-06-28 10:33:54 UTC
GCC 10.4 is being released, retargeting bugs to GCC 10.5.