On Fri, Aug 12, 2011 at 12:30 AM, Jan Beulich <jbeul...@novell.com> wrote: >>>> On 12.08.11 at 06:37, "H.J. Lu" <hjl.to...@gmail.com> wrote: >> On Mon, Aug 1, 2011 at 3:15 PM, H.J. Lu <hjl.to...@gmail.com> wrote: >>> Hi, >>> >>> It turns out that x32 needs R_X86_64_64. One major reason is >>> the displacement range of x32 is -2G to +2G. It isn't a problem >>> for compiler since only small model is required for x32. >>> >>> However, to address 0 to 4G directly in assembly code, we have >>> to use R_X86_64_64 with movabs. I am checking the follow patch >>> into x32 psABI to allow R_X86_64_64. >>> >>> >> >> X32 Linker should treats R_X86_64_64 as R_X86_64_32 >> zero-extended to 64bit for output. I will update x32 psABI with > > I'm sorry to say that, but the situation about x32 seems to be > getting worse with each change you do, every time again > revolving around mixing up ABI specification and a particular > implementation thereof. > > Here, if you need something zero-extended (though I can't see > why you would), then you should use a new relocation type. As > pointed out before, there are valid possible uses of R_X86_64_64 > that would require the semantics of x86-64. >
When does x32 need the semantics of x86-64 for R_X86_64_64? No, you can't mix ELF32 with ELF64. -- H.J.