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: ia64 ltoff22x/ldxmov relaxation


"H. J. Lu" <hjl at lucon dot org> writes:

|> On Thu, Apr 24, 2003 at 06:09:56PM +0200, Andreas Schwab wrote:
|> > Richard Henderson <rth at redhat dot com> writes:
|> > 
|> > |> Also misses properly choosing a new gp when jump buffers are added.
|> > |> Technically this is a potential correctness issue.  Failures will
|> > |> be caught by relocate_section in the form of GPREL22 overflows.
|> > |> However this should should work well in practice because of the default
|> > |> 2**61 byte separation of the text and data segments in executables.
|> > |> In order for this to be fixed, I need a callback from the main ld
|> > |> relaxation loop at the start of a new round of relaxation.
|> > 
|> > Unfortunately, this bites with large shared libraries where this text/data
|> > separation does not exist.  For example, we get GPREL22 overflows when
|> > linking libjava from gcc mainline.  I can prepare a test case if you need.
|> > 
|> 
|> Yes, plase. I am interested in a testcase for that.

You can download it from
<ftp://ftp.suse.com/pub/people/schwab/libjava-test.tar.bz2>.
Unfortunately it is quite big, but I couldn't reduce it without the bug
going away.  Unpack the archive and run link-java, you will get these
errors:

java.a(Date.o)(.text+0x990): In function `java::util::Date::toString()':
: relocation truncated to fit: GPREL22 .text
java.a(Date.o)(.text+0xc30): In function `java::util::Date::toString()':
: relocation truncated to fit: GPREL22 .text
java.a(Date.o)(.text+0xda1): In function `java::util::Date::toString()':
: relocation truncated to fit: GPREL22 .text
java.a(Date.o)(.text+0xfb1): In function `java::util::Date::toString()':
: relocation truncated to fit: GPREL22 .text
java.a(Date.o)(.text+0x13d0): In function `java::util::Date::toGMTString()':
: relocation truncated to fit: GPREL22 .text
java.a(Date.o)(.text+0x17e1): In function `java::util::Date::parseMonth(java::lang::String*)':
: relocation truncated to fit: GPREL22 .text
java.a(Date.o)(.text+0x17e2): In function `java::util::Date::parseMonth(java::lang::String*)':
: relocation truncated to fit: GPREL22 .text
java.a(Date.o)(.text+0x1802): In function `java::util::Date::parseMonth(java::lang::String*)':
: relocation truncated to fit: GPREL22 .text
java.a(Date.o)(.text+0x1811): In function `java::util::Date::parseMonth(java::lang::String*)':
: relocation truncated to fit: GPREL22 .text
java.a(Date.o)(.text+0x1821): In function `java::util::Date::parseMonth(java::lang::String*)':
: relocation truncated to fit: GPREL22 .text
java.a(Date.o)(.text+0x1831): In function `java::util::Date::parseMonth(java::lang::String*)':
: relocation truncated to fit: GPREL22 .text
java.a(Date.o)(.text+0x1841): In function `java::util::Date::parseMonth(java::lang::String*)':
: relocation truncated to fit: GPREL22 .text
java.a(Date.o)(.text+0x1851): In function `java::util::Date::parseMonth(java::lang::String*)':
: relocation truncated to fit: GPREL22 .text
java.a(Date.o)(.text+0x1861): In function `java::util::Date::parseMonth(java::lang::String*)':
: relocation truncated to fit: GPREL22 .text
java.a(Date.o)(.text+0x1871): In function `java::util::Date::parseMonth(java::lang::String*)':
: relocation truncated to fit: GPREL22 .text
java.a(Date.o)(.text+0x1881): In function `java::util::Date::parseMonth(java::lang::String*)':
: relocation truncated to fit: GPREL22 .text
java.a(Date.o)(.text+0x1892): In function `java::util::Date::parseMonth(java::lang::String*)':
: relocation truncated to fit: GPREL22 .text
java.a(Date.o)(.text+0x1bb1): In function `java::util::Date::parseDayOfWeek(java::lang::String*)':
: relocation truncated to fit: GPREL22 .text
java.a(Date.o)(.text+0x1bb2): In function `java::util::Date::parseDayOfWeek(java::lang::String*)':
: relocation truncated to fit: GPREL22 .text
java.a(Date.o)(.text+0x1bc0): In function `java::util::Date::parseDayOfWeek(java::lang::String*)':
: relocation truncated to fit: GPREL22 .text
java.a(Date.o)(.text+0x1be2): In function `java::util::Date::parseDayOfWeek(java::lang::String*)':
: relocation truncated to fit: GPREL22 .text
java.a(Date.o)(.text+0x1bf0): In function `java::util::Date::parseDayOfWeek(java::lang::String*)':
: relocation truncated to fit: GPREL22 .text
java.a(Date.o)(.text+0x1c01): In function `java::util::Date::parseDayOfWeek(java::lang::String*)':
: relocation truncated to fit: GPREL22 .text
java.a(Date.o)(.text+0x1c12): In function `java::util::Date::parseDayOfWeek(java::lang::String*)':
: relocation truncated to fit: GPREL22 .text
java.a(Date.o)(.text+0x2060): In function `java::util::Date::parse(java::lang::String*)':
: relocation truncated to fit: GPREL22 .text
java.a(Date.o)(.text+0x2270): In function `java::util::Date::parse(java::lang::String*)':
: relocation truncated to fit: GPREL22 .text
java.a(Date.o)(.text+0x2520): In function `java::util::Date::parse(java::lang::String*)':
: relocation truncated to fit: GPREL22 .text
java.a(Date.o)(.text+0x25d0): In function `java::util::Date::parse(java::lang::String*)':
: relocation truncated to fit: GPREL22 .text
java.a(Date.o)(.text+0x2680): In function `java::util::Date::parse(java::lang::String*)':
: relocation truncated to fit: GPREL22 .text
java.a(Date.o)(.text+0x28c0): In function `java::util::Date::parse(java::lang::String*)':
: relocation truncated to fit: GPREL22 .text
java.a(Date.o)(.text+0x2910): In function `java::util::Date::parse(java::lang::String*)':
: relocation truncated to fit: GPREL22 .text
java.a(Date.o)(.text+0x39c1): In function `java::util::Date::<clinit>()':
: relocation truncated to fit: GPREL22 .text
java.a(Date.o)(.text+0x39d0): In function `java::util::Date::<clinit>()':
: relocation truncated to fit: GPREL22 .text
java.a(Date.o)(.text+0x39d1): In function `java::util::Date::<clinit>()':
: relocation truncated to fit: GPREL22 .text
java.a(Date.o)(.text+0x39f1): In function `java::util::Date::<clinit>()':
: relocation truncated to fit: GPREL22 .text
java.a(Date.o)(.text+0x3a02): In function `java::util::Date::<clinit>()':
: relocation truncated to fit: GPREL22 .text
java.a(Date.o)(.text+0x3a11): In function `java::util::Date::<clinit>()':
: relocation truncated to fit: GPREL22 .text
java.a(Date.o)(.text+0x3a21): In function `java::util::Date::<clinit>()':
: relocation truncated to fit: GPREL22 .text
java.a(Date.o)(.text+0x3b72): In function `java::util::Date::<clinit>()':
: relocation truncated to fit: GPREL22 .text
java.a(Date.o)(.text+0x3b80): In function `java::util::Date::<clinit>()':
: relocation truncated to fit: GPREL22 .text
java.a(Date.o)(.text+0x3b81): In function `java::util::Date::<clinit>()':
: relocation truncated to fit: GPREL22 .text
java.a(Date.o)(.text+0x3b82): In function `java::util::Date::<clinit>()':
: relocation truncated to fit: GPREL22 .text
java.a(Date.o)(.text+0x3ba1): In function `java::util::Date::<clinit>()':
: relocation truncated to fit: GPREL22 .text
java.a(Date.o)(.text+0x3ba2): In function `java::util::Date::<clinit>()':
: relocation truncated to fit: GPREL22 .text
java.a(Date.o)(.text+0x3bb1): In function `java::util::Date::<clinit>()':
: relocation truncated to fit: GPREL22 .text
java.a(Date.o)(.text+0x3bc2): In function `java::util::Date::<clinit>()':
: relocation truncated to fit: GPREL22 .text
java.a(Date.o)(.text+0x3bd1): In function `java::util::Date::<clinit>()':
: relocation truncated to fit: GPREL22 .text
java.a(Date.o)(.text+0x3be1): In function `java::util::Date::<clinit>()':
: relocation truncated to fit: GPREL22 .text
java.a(Date.o)(.text+0x3bf1): In function `java::util::Date::<clinit>()':
: relocation truncated to fit: GPREL22 .text
java.a(Date.o)(.text+0x3c11): In function `java::util::Date::<clinit>()':
: relocation truncated to fit: GPREL22 .text


Andreas.

-- 
Andreas Schwab, SuSE Labs, schwab at suse dot de
SuSE Linux AG, Deutschherrnstr. 15-19, D-90429 Nürnberg
Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."


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