bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug gold/12525] gold SEGV linking libgcc_s.so.1 on Solaris 11/x86


From: ro at CeBiTec dot Uni-Bielefeld.DE
Subject: [Bug gold/12525] gold SEGV linking libgcc_s.so.1 on Solaris 11/x86
Date: Tue, 1 Mar 2011 14:45:54 +0000

http://sourceware.org/bugzilla/show_bug.cgi?id=12525

--- Comment #2 from Rainer Orth <ro at CeBiTec dot Uni-Bielefeld.DE> 2011-03-01 
14:45:36 UTC ---
> --- Comment #1 from Ian Lance Taylor <ian at airs dot com> 2011-03-01 
> 14:29:45 UTC ---
> At least part of the problem is that gold does not support the -dy option. 
> That is interpreted as the -d option followed by the -y option.  The -y option
> takes an argument, which is the string "-z".  The string "text" is then taken
> to name an input file.

I see.  gld 2.21 does handle it though, so I suppose gold should as well
to be a drop-in replacement?

> That does not explain the crash.  The value of the parameter "p" is apparently
> incorrect, but I don't see what could cause that to happen.  I'll need to be
> able to recreate this in the debugger somehow.

I've had a look:

(gdb) up
#2  0x085c959d in gold::Symbol_table::sized_write_globals<32, false>
(this=0x8046d9c, sympool=0x8046bf4, dynpool=0x8046c38, symtab_xindex=0x0,
dynsym_xindex=0x0, of=0x897f3d0) at
/vol/gnu/src/binutils/binutils-hg/gold/symtab.cc:2850
(gdb) p ps
$1 = (unsigned char *) 0xfe51e9b4 <Address 0xfe51e9b4 out of bounds>
(gdb) p psyms
$2 = (unsigned char *) 0xfe51e874 <Address 0xfe51e874 out of bounds>

So it seems the bad value is from symtab.cc:2706:

    psyms = of->get_output_view(this->offset_, oview_size);

gold::Output_file::get_output_view (this=0x897f3d0, start=383092, size=2752) at
/vol/gnu/src/binutils/binutils-hg/gold/output.h:4105
(gdb) p this->base_
$5 = (unsigned char *) 0xfe4c1000 <Address 0xfe4c1000 out of bounds>
(gdb) p start
$6 = 383092
(gdb) p this->base_ + start
$7 = (unsigned char *) 0xfe51e874 <Address 0xfe51e874 out of bounds>

The bad value for base_ is already in layout.cc
(Write_symbols_task::run), but I cannot readily see how to trace it back
further up.

    Rainer

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]