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] |
On Sat, Jun 14, 2003 at 09:41:11PM -0700, Jim Wilson wrote: > On Sat, 2003-06-14 at 21:19, H. J. Lu wrote: > > Under what condition will the offset between 2 segments change? Even > > with shared library, I don't think the offset between 2 segments > > will change. > > I dunno. I'm not an expert with this stuff. However, I do believe that > there are systems that will load segments and then relocate them. If > this happens, there is no guarantee that offsets between segments will I am not sure if it will work for ia64 because of GP. > remain the same. This will not work if you have segrel relocs that span > segment boundaries, as your example does. I doubt that this is a > problem for linux though. > > I did say it was a technicality. If the linux kernel wants to rely on a > feature that violates the IA-64 ABI, then that is certainly their > choice. We should at least mention the problem to them though. It > might be reasonable to fix the IA-64 ABI to allow this. Or it might be > reasonable to change the linux kernel so that it doesn't do this, and > modify bfd to give an error for invalid segrel relocs like the one in > your example. Linux kernel never uses the pure ia64 psABI. How about we allow it for constant GP and issue an error otherwise? # make /export/build/linux/binutils-debug/build-ia64-linux/ld/ld-new -o normal -Tt.lds normal.o /export/build/linux/binutils-debug/build-ia64-linux/ld/ld-new: normal.o: unsupported SEGREL64LSB relocation in section `.IA_64.unwind' against section `.text' normal.o(.IA_64.unwind+0x0): unsupported reloc /export/build/linux/binutils-debug/build-ia64-linux/ld/ld-new: normal.o: unsupported SEGREL64LSB relocation in section `.IA_64.unwind' against section `.text' normal.o(.IA_64.unwind+0x8): unsupported reloc /export/build/linux/binutils-debug/build-ia64-linux/ld/ld-new: normal.o: unsupported SEGREL64LSB relocation in section `.IA_64.unwind' against section `.IA_64.unwind_info' normal.o(.IA_64.unwind+0x10): unsupported reloc make: *** [normal] Error 1 H.J.
Attachment:
bfd-ia64-segrel.patch
Description: Text document
Attachment:
bug.tar.gz
Description: GNU Zip compressed data
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |