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: bfd is broken


On Thu, Jan 10, 2002 at 11:03:13PM -0800, H . J . Lu wrote:
> On Thu, Jan 10, 2002 at 08:54:51PM -0800, Geoff Keating wrote:
> > 
> > The configuration I used to test the original patch was x86 Red Hat
> > Linux 7 with all updates applied, using the Red Hat GNUPro 00r1
> > compiler, without special configure flags; and the bootstrap test
> > passed.  When I got your message I ran a build with the toplevel
> > binutils CVS tree, the latest bundled compiler gcc-2.96-85, and your two
> > special configure flags; and the bootstrap test still passed.  In fact
> > all tests pass or xfail.
> > 
> > I wouldn't expect SEC_EXCLUDE to be used much when building ld.  How
> > did you determine that it was my patch?
> 
> Backing out your patch fixes ld. Can you tell me how to reproduce your
> bug? The .c/.o/.s files are fine.

I'd really like to see testcase, but looking at Geoff patch I see what can
be wrong: _bfd_merged_section_offset needs to be called even if
(isec->flags & SEC_EXCLUDE), provided SEC_EXCLUDE has been added because of
_cooked_size 0.

E.g. if a.s has:
.section ".rodata.str1.1", "aMS", @progbits, 1
.LC1: .asciiz "foobar"
.LC2: .asciiz "bogusstr"

and b.s has:
.section ".rodata.str1.1", "aMS", @progbits, 1
.LC3: .asciiz "bar"
.LC4: .asciiz "str"

then b.o's .rodata.str1.1 section will be SEC_EXCLUDE, but .LC3 needs to be
translated to .LC1 + 3 and .LC4 to .LC2 + 5.

	Jakub


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