public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* Regression tester v. runtime libraries
@ 2001-11-21 13:48 Joseph S. Myers
  2001-11-21 15:38 ` Phil Edwards
                   ` (3 more replies)
  0 siblings, 4 replies; 11+ messages in thread
From: Joseph S. Myers @ 2001-11-21 13:48 UTC (permalink / raw)
  To: gcc

Does the automated regression tester check for regressions in the
libstdc++-v3 and libjava testsuites?

-- 
Joseph S. Myers
jsm28@cam.ac.uk

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Regression tester v. runtime libraries
  2001-11-21 13:48 Regression tester v. runtime libraries Joseph S. Myers
@ 2001-11-21 15:38 ` Phil Edwards
  2001-11-29  8:50   ` Phil Edwards
  2001-11-22  0:22 ` Richard Henderson
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 11+ messages in thread
From: Phil Edwards @ 2001-11-21 15:38 UTC (permalink / raw)
  To: Joseph S. Myers; +Cc: gcc

On Thu, Nov 29, 2001 at 12:44:09PM +0000, Joseph S. Myers wrote:
> Does the automated regression tester check for regressions in the
> libstdc++-v3 and libjava testsuites?

I know libstdc++-v3 gets checked, or at least it used to.

-- 
If ye love wealth greater than liberty, the tranquility of servitude greater
than the animating contest for freedom, go home and leave us in peace.  We seek
not your counsel, nor your arms.  Crouch down and lick the hand that feeds you;
and may posterity forget that ye were our countrymen.            - Samuel Adams

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Regression tester v. runtime libraries
  2001-11-21 13:48 Regression tester v. runtime libraries Joseph S. Myers
  2001-11-21 15:38 ` Phil Edwards
@ 2001-11-22  0:22 ` Richard Henderson
  2001-11-29 14:54   ` Richard Henderson
  2001-11-22 13:34 ` Geoff Keating
  2001-11-29  4:44 ` Joseph S. Myers
  3 siblings, 1 reply; 11+ messages in thread
From: Richard Henderson @ 2001-11-22  0:22 UTC (permalink / raw)
  To: Joseph S. Myers; +Cc: gcc

On Thu, Nov 29, 2001 at 12:44:09PM +0000, Joseph S. Myers wrote:
> Does the automated regression tester check for regressions in the
> libstdc++-v3 and libjava testsuites?

Yes.


r~

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Regression tester v. runtime libraries
  2001-11-21 13:48 Regression tester v. runtime libraries Joseph S. Myers
  2001-11-21 15:38 ` Phil Edwards
  2001-11-22  0:22 ` Richard Henderson
@ 2001-11-22 13:34 ` Geoff Keating
  2001-11-30  0:02   ` Geoff Keating
  2001-12-15 21:10   ` Hans-Peter Nilsson
  2001-11-29  4:44 ` Joseph S. Myers
  3 siblings, 2 replies; 11+ messages in thread
From: Geoff Keating @ 2001-11-22 13:34 UTC (permalink / raw)
  To: Joseph S. Myers; +Cc: gcc

"Joseph S. Myers" <jsm28@cam.ac.uk> writes:

> Does the automated regression tester check for regressions in the
> libstdc++-v3 and libjava testsuites?

In theory yes.

However,

- libstdc++-v3 got switched off because of a bug in linking C++
  objects compiled with different optimisation levels that would cause
  FAILs to appear and disappear at random; and

- libjava never did get switched on, partly because it doesn't work on
  powerpc-eabisim, so it would only affect the x86 native, which makes
  it hard for others to fix any problems the regression tester finds.
  Maybe I should revisit this.

-- 
- Geoffrey Keating <geoffk@geoffk.org> <geoffk@redhat.com>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Regression tester v. runtime libraries
  2001-11-21 13:48 Regression tester v. runtime libraries Joseph S. Myers
                   ` (2 preceding siblings ...)
  2001-11-22 13:34 ` Geoff Keating
@ 2001-11-29  4:44 ` Joseph S. Myers
  3 siblings, 0 replies; 11+ messages in thread
From: Joseph S. Myers @ 2001-11-29  4:44 UTC (permalink / raw)
  To: gcc

Does the automated regression tester check for regressions in the
libstdc++-v3 and libjava testsuites?

-- 
Joseph S. Myers
jsm28@cam.ac.uk

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Regression tester v. runtime libraries
  2001-11-21 15:38 ` Phil Edwards
@ 2001-11-29  8:50   ` Phil Edwards
  0 siblings, 0 replies; 11+ messages in thread
From: Phil Edwards @ 2001-11-29  8:50 UTC (permalink / raw)
  To: Joseph S. Myers; +Cc: gcc

On Thu, Nov 29, 2001 at 12:44:09PM +0000, Joseph S. Myers wrote:
> Does the automated regression tester check for regressions in the
> libstdc++-v3 and libjava testsuites?

I know libstdc++-v3 gets checked, or at least it used to.

-- 
If ye love wealth greater than liberty, the tranquility of servitude greater
than the animating contest for freedom, go home and leave us in peace.  We seek
not your counsel, nor your arms.  Crouch down and lick the hand that feeds you;
and may posterity forget that ye were our countrymen.            - Samuel Adams

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Regression tester v. runtime libraries
  2001-11-22  0:22 ` Richard Henderson
@ 2001-11-29 14:54   ` Richard Henderson
  0 siblings, 0 replies; 11+ messages in thread
From: Richard Henderson @ 2001-11-29 14:54 UTC (permalink / raw)
  To: Joseph S. Myers; +Cc: gcc

On Thu, Nov 29, 2001 at 12:44:09PM +0000, Joseph S. Myers wrote:
> Does the automated regression tester check for regressions in the
> libstdc++-v3 and libjava testsuites?

Yes.


r~

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Regression tester v. runtime libraries
  2001-11-22 13:34 ` Geoff Keating
@ 2001-11-30  0:02   ` Geoff Keating
  2001-12-15 21:10   ` Hans-Peter Nilsson
  1 sibling, 0 replies; 11+ messages in thread
From: Geoff Keating @ 2001-11-30  0:02 UTC (permalink / raw)
  To: Joseph S. Myers; +Cc: gcc

"Joseph S. Myers" <jsm28@cam.ac.uk> writes:

> Does the automated regression tester check for regressions in the
> libstdc++-v3 and libjava testsuites?

In theory yes.

However,

- libstdc++-v3 got switched off because of a bug in linking C++
  objects compiled with different optimisation levels that would cause
  FAILs to appear and disappear at random; and

- libjava never did get switched on, partly because it doesn't work on
  powerpc-eabisim, so it would only affect the x86 native, which makes
  it hard for others to fix any problems the regression tester finds.
  Maybe I should revisit this.

-- 
- Geoffrey Keating <geoffk@geoffk.org> <geoffk@redhat.com>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Regression tester v. runtime libraries
  2001-11-22 13:34 ` Geoff Keating
  2001-11-30  0:02   ` Geoff Keating
@ 2001-12-15 21:10   ` Hans-Peter Nilsson
  2001-12-22 12:25     ` Geoff Keating
  1 sibling, 1 reply; 11+ messages in thread
From: Hans-Peter Nilsson @ 2001-12-15 21:10 UTC (permalink / raw)
  To: Geoff Keating; +Cc: Joseph S. Myers, gcc

On 30 Nov 2001, Geoff Keating wrote:
> "Joseph S. Myers" <jsm28@cam.ac.uk> writes:
>
> > Does the automated regression tester check for regressions in the
> > libstdc++-v3 and libjava testsuites?
>
> In theory yes.
>
> However,
>
> - libstdc++-v3 got switched off because of a bug in linking C++
>   objects compiled with different optimisation levels that would cause
>   FAILs to appear and disappear at random; and

Is that the gcc <-> binutils mismatch with relocs against
symbols in discarded linkonce sections that we discussed on the
binutils list some time ago?  (That description certainly
matches what I saw then.)

brgds, H-P

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Regression tester v. runtime libraries
  2001-12-15 21:10   ` Hans-Peter Nilsson
@ 2001-12-22 12:25     ` Geoff Keating
  2001-12-22 20:20       ` Hans-Peter Nilsson
  0 siblings, 1 reply; 11+ messages in thread
From: Geoff Keating @ 2001-12-22 12:25 UTC (permalink / raw)
  To: hp; +Cc: jsm28, gcc

> Date: Sun, 16 Dec 2001 00:02:58 -0500 (EST)
> From: Hans-Peter Nilsson <hp@bitrange.com>
> cc: "Joseph S. Myers" <jsm28@cam.ac.uk>, <gcc@gcc.gnu.org>
> 
> On 30 Nov 2001, Geoff Keating wrote:
> > "Joseph S. Myers" <jsm28@cam.ac.uk> writes:
> >
> > > Does the automated regression tester check for regressions in the
> > > libstdc++-v3 and libjava testsuites?
> >
> > In theory yes.
> >
> > However,
> >
> > - libstdc++-v3 got switched off because of a bug in linking C++
> >   objects compiled with different optimisation levels that would cause
> >   FAILs to appear and disappear at random; and
> 
> Is that the gcc <-> binutils mismatch with relocs against
> symbols in discarded linkonce sections that we discussed on the
> binutils list some time ago?  (That description certainly
> matches what I saw then.)

Yes, it's the bug where EH information ends up in the executable for
linkonce functions that were deleted.

-- 
- Geoffrey Keating <geoffk@geoffk.org> <geoffk@redhat.com>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Regression tester v. runtime libraries
  2001-12-22 12:25     ` Geoff Keating
@ 2001-12-22 20:20       ` Hans-Peter Nilsson
  0 siblings, 0 replies; 11+ messages in thread
From: Hans-Peter Nilsson @ 2001-12-22 20:20 UTC (permalink / raw)
  To: Geoff Keating; +Cc: jsm28, gcc

On Sat, 22 Dec 2001, Geoff Keating wrote:
> > Date: Sun, 16 Dec 2001 00:02:58 -0500 (EST)
> > From: Hans-Peter Nilsson <hp@bitrange.com>
> > On 30 Nov 2001, Geoff Keating wrote:
> > > - libstdc++-v3 got switched off because of a bug in linking C++
> > >   objects compiled with different optimisation levels that would cause
> > >   FAILs to appear and disappear at random; and
> >
> > Is that the gcc <-> binutils mismatch with relocs against
> > symbols in discarded linkonce sections that we discussed on the
> > binutils list some time ago?  (That description certainly
> > matches what I saw then.)
>
> Yes, it's the bug where EH information ends up in the executable for
> linkonce functions that were deleted.

Not a precise enough description for my hair-splitting.
Fixable by s/the executable/some exception helper table
generated at run-time/ though.

I think I should summarize my recollection: the EH information
was (is?) emitted to one and the same section, .eh_frame for all
code, while the code itself would as usual be split into
function-named linkonce-sections for template instantiations and
similar.  The problem was that binutils stopped emitting zero
for relocs to the discarded linkonce code sections (the
duplicate template instantiations) while GCC still expected zero
emitted there, which it would use to filter out EH records for
the discarded sections.  IIRC, the relocated data, in place of
the zero, points to the remaining section, so it looks valid.
This mismatch started with binutils 2.11.  H.J. has imported
the fix into his binutils releases AFAIK.

It was concluded that emitting zero for linkonce-discarded
sections wasn't really right.  Instead, a link error was TRT,
but zero would be continued to be emitted for compatibility with
older GCC for a limited period, until releases of gcc with a new
scheme are abundant, where the EH info for a function is
discarded together with the code.  I haven't checked, but I hope
this new layout scheme is in 3.1.  Hope to do more than hope,
soon I hope.

The mismatch will result in incorrect frame information when
unwinding the stack.  It will be seen as uncaught_exception
(usually leading on to abort) being called IIRC.  This will
happen only if the library and the program are compiled with
different optimization options or different releases of GCC (so
there are different stack frame information for the included and
the excluded linkonce sections), and if a helper table that is
generated at exception-time has the "excluded" EH info entries
at an unfortunate place.  To wit, it'll break if your program
throws an exception and you're (deterministically) unlucky with
the EH info layout.  I don't remember if there are additional
requirements; it may be restricted to only exceptions passing
functions that are part of a template instantiation.  The
scenario can be visualized as using the result of bsearching a
sorted table required to have unique keys, but in fact having
duplicate keys for some entries with bogus data.

Point being, IMHO the regression tester should test libstdc++-v3
too now.  If the EH info layout in GCC isn't "fixed", it should
use binutils CVS (or a release with the zero-emitting fix) for
both the powerpc-sim and native tests.

brgds, H-P
PS.  Happy holidays.

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2001-12-23  3:07 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-11-21 13:48 Regression tester v. runtime libraries Joseph S. Myers
2001-11-21 15:38 ` Phil Edwards
2001-11-29  8:50   ` Phil Edwards
2001-11-22  0:22 ` Richard Henderson
2001-11-29 14:54   ` Richard Henderson
2001-11-22 13:34 ` Geoff Keating
2001-11-30  0:02   ` Geoff Keating
2001-12-15 21:10   ` Hans-Peter Nilsson
2001-12-22 12:25     ` Geoff Keating
2001-12-22 20:20       ` Hans-Peter Nilsson
2001-11-29  4:44 ` Joseph S. Myers

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).