public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* Re: GCC testsuite run before and after ~2.12.1 upgraded to pre-2.13
@ 2002-07-25 21:53 Loren James Rittle
  2002-07-25 22:09 ` H. J. Lu
  0 siblings, 1 reply; 13+ messages in thread
From: Loren James Rittle @ 2002-07-25 21:53 UTC (permalink / raw)
  To: binutils; +Cc: gcc-bugs

(Based upon the analysis below, I am CCing gcc-bugs RE PR 7171.  The
 version numbers in the subject line refer to binutils.  Quick
 summary: More C++ test cases fail with binutils pre-2.13 than failed
 with binutils ~2.12.1.  This behavior has been spotted on a wide
 variety of platforms.)

Thank you Jason R Thorpe, Alan Modra and Ian Lance Taylor for the
discussion you held last week on this topic.  Here is what I see when
I build "element_access.exe" on i386-unknown-freebsd4.6 (a newly
failing C++ libstdc++-v3 test case, upon binutils upgrade to pre-2.13
with full rebootstrap of gcc) with -Map:

[...]
.rodata         0x08048e80      0x14d
 *(.rodata .rodata.* .gnu.linkonce.r.*)
 .rodata        0x08048e80        0x1 /usr/lib/crt1.o
 *fill*         0x08048e81       0x1f 00
 .rodata        0x08048ea0      0x10f /var/tmp//ccAEn9wX.o
 *fill*         0x08048faf        0x1 00
 .gnu.linkonce.r._ZTISt12out_of_range
                0x08048fb0        0xc /var/tmp//ccAEn9wX.o
                0x08048fb0                _ZTISt12out_of_range
 .gnu.linkonce.r._ZTSSt12out_of_range
                0x08048fbc       0x11 /var/tmp//ccAEn9wX.o
                0x08048fbc                _ZTSSt12out_of_range
[...]

Tracing back, I see these entries in "element_access.o":

  [16] .gnu.linkonce.r._ PROGBITS        00000000 008f2c 00000c 00  WA  0   0  4
  [18] .gnu.linkonce.r._ PROGBITS        00000000 008f38 000011 00   A  0   0  1

Based on size of element, it appears that _ZTISt12out_of_range (AKA
``typeinfo for std::out_of_range'') is of interest.  Tracing back from
here, I see this in the g++-produced asm:

        .section        .gnu.linkonce.r._ZTISt12out_of_range,"aw",@progbits

In a source tree configured against an older ld, the same line is
present and the "writeable bit" propagates through to the final
executable built there as well.  However, it doesn't trigger the
report from the system's dynamic ELF loader in that particular test case.

Question (raised only for completeness, I think the answer is ``no''):
is this line from the ldscript wrong?

  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }

Or, is g++ wrong in producing that particular .section line?

From reading gcc sources, I think the .r. in .gnu.linkonce.r.* implies
read-only, thus the conflict would appear to lie in the production
within the compiler.  Spot checking the other type of new test suite
failures, which are all of this form:

ld: ./XYZ.exe: Not enough room for program headers (allocated 6, need 7)

I note that the input object built by g++ has the write bit set on at
least some of the .gnu.linkonce.r.* sections.

We now have reports of this exact failure symptom on (at least):
i686-pc-linux-gnu (PR 7171), sparc-sun-solaris, i386-unknown-freebsd,
alpha-*-netbsd, i386-*-netbsd

I can investigate further but not until Friday afternoon.

Regards,
Loren

^ permalink raw reply	[flat|nested] 13+ messages in thread
* GCC testsuite run before and after ~2.12.1 upgraded to pre-2.13
@ 2002-07-18 20:07 Loren James Rittle
  2002-07-19  3:47 ` Alan Modra
  2002-07-19 11:16 ` Jason R Thorpe
  0 siblings, 2 replies; 13+ messages in thread
From: Loren James Rittle @ 2002-07-18 20:07 UTC (permalink / raw)
  To: binutils; +Cc: obrien

It was recently announced that a branch was created for the
forthcoming FSF binutils 2.13 release.  In either that message or
another posted soon afterwards, it was mentioned that *now* is the
time to test/report on issues.  Here is my current regression report:

Zero regressions in the binutils testsuite proper on
i386-unknown-freebsd4.6 (with both no patches and a one-liner related
to "branding" which is in our system copy of binutils).

Frequently, I bootstrap GCC mainline on i386-unknown-freebsd4.6.  I
had been bootstrapping against binutils 2.12.1 20020517.  After
upgrading to the pre-2.13 branch, 2.12.90 20020717, I re-bootstrapped
GCC from scratch and saw these new failures (not necessarily
indicative of a binutils bug):

/usr/libexec/ld-elf.so.1: ./element_access.exe: too few PT_LOAD segments
[... 37 additional, similar new failures in g++.log ...]

ld: ./vbase8-10.exe: Not enough room for program headers (allocated 6, need 7)
[... 1 additional, similar new failures in g++.log and 2 additional, similar
 which pre-existed this binutils upgrade but do not appear in FSF 2.11.X...]

(Regarding the second error message, I have noted others posting
reports of it to the gcc DejaGNU.)

The last time I tested binutils mainline (around mid-May), I saw a
similar error profile but hoped to look into it further before
reporting it.  However, I usually hack on the C++ library not this
level of the tool chain thus I'm a fish out of water...

Regards,
Loren

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

end of thread, other threads:[~2002-07-26  4:53 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-07-25 21:53 GCC testsuite run before and after ~2.12.1 upgraded to pre-2.13 Loren James Rittle
2002-07-25 22:09 ` H. J. Lu
  -- strict thread matches above, loose matches on Subject: below --
2002-07-18 20:07 Loren James Rittle
2002-07-19  3:47 ` Alan Modra
2002-07-19 11:16 ` Jason R Thorpe
2002-07-19 17:29   ` Alan Modra
2002-07-19 18:21     ` Jason R Thorpe
2002-07-19 18:46       ` Alan Modra
2002-07-19 18:52         ` Jason R Thorpe
2002-07-19 19:43           ` Alan Modra
2002-07-19 21:14             ` Jason R Thorpe
2002-07-19 21:33               ` Ian Lance Taylor
2002-07-20 11:33               ` Alan Modra

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).