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: PATCH: BZ/175: Fix dynamic string offset


On Fri, May 21, 2004 at 10:55:03AM +0930, Alan Modra wrote:
> On Thu, May 20, 2004 at 03:54:41PM -0700, H. J. Lu wrote:
> > For
> > 	x = "1111" + (y - 0x1000) * 2;
> > 
> > gcc can generate
> > 
> >         addl r14 = @ltoffx(.LC0-8192), r1
> >         ;;
> >         ld8.mov r14 = [r14], .LC0-8192
> >         ;;
> > 
> > _bfd_merged_section_offset thinks offset + adddend is bad when it is
> > not the real string position. I looked at _bfd_merged_section_offset.
> > It is always passed with addend == 0. I changed addend to dynamic_offset
> > so that we can tell _bfd_merged_section_offset to compute offset
> > properly. If my patch is right, we may need to make similar change
> > to elf32-ppc.c.
> 
> I think it quite possible that this patch will break other accesses
> into merged sections.  To properly fix the problem, you would need to
> distinguish this particular access from others.  Perhaps the reloc used
> might give you enough information.
> 

Good idea. Here it is.

Attachment: bfd-merge-2.patch
Description: Text document


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