This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: GNU as 2.14 on IRIX 6: crashes with shared libs


Richard Sandiford writes:

> Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> writes:
> > Bootstrap finished with this hack, checking is now in progress and looks
> > quite good :-)  I suppose the decision whether or not to create the .pdr
> > section on IRIX 6 should be controlled by a flag, to allow for use of one
> > gas binary with the native ld (off) or GNU ld (on).  It could default to
> > always on on non-IRIX systems, and off on IRIX to avoid the massive
> > breakage observed here.  Comments?
> 
> Sounds good. ;)

The tests have now completed, and the 32-bit (N32) results look good
(i.e. no regressions in the GCC testsuite).  The 64-bit case (N64) is
different, though: I get a considerable number of executions failures, even
for C-only tests, e.g.

+FAIL: gcc.c-torture/execute/20010106-1.c execution,  -O0 

Unfortunately, I cannot really debug those: CVS gdb (2003-06-04-cvs) bails
out on this one:

Program received signal SIGSEGV, Segmentation fault.
warning: Warning: GDB can't find the start of the function at 0x1001c838.

    GDB is unable to find the start of the function at 0x1001c838
and thus can't determine the size of that function's stack frame.
This means that GDB may be unable to access that stack frame, or
the frames below it.
    This problem is most likely caused by an invalid program counter or
stack pointer.
    However, if you think GDB should simply search farther back
from 0x1001c838 for code which looks like the beginning of a
function, you can increase the range of the search using the `set
heuristic-fence-post' command.
0x1001c838 in ?? ()
(gdb) where
#0  0x1001c838 in ?? ()
#1  0x1000184c in main ()
Cannot access memory at address 0xfffffffe

dbx is not much better, though:

% dbx 20010106-1.x0 
dbx version 7.3.2 73509_May21 MR May 21 2001 17:15:31
PC value from core file (0x1001c838) is not part of the program.
Assuming return register value (0x1000184c) usable to locate PC.
Core from signal SIGSEGV: Segmentation violation
(dbx) where
>  0 <Unknown>() [< unknown >, 0x1000184c]

Anyway, I'll prepare the described patch to disable .pdr generation on IRIX
by default.

	Rainer


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]