This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [x32] Allow R_X86_64_64
On Mon, Aug 1, 2011 at 3:15 PM, H.J. Lu <hjl.tools@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
---
diff --git a/object-files.tex b/object-files.tex
index 7f0fd14..d1543b5 100644
--- a/object-files.tex
+++ b/object-files.tex
@@ -451,7 +451,7 @@ or \texttt{Elf32_Rel} relocation.
\multicolumn{1}{c}{Calculation} \\
\hline
\texttt{R_X86_64_NONE} & 0 & none & none \\
- \texttt{R_X86_64_64} & 1 & \textit{word64} & \texttt{S + A} \\
+ \texttt{R_X86_64_64} $^{\dagger\dagger}$ & 1 & \textit{word64}
& \texttt{S + A} \\
\texttt{R_X86_64_PC32} & 2 & \textit{word32} & \texttt{S + A - P} \\
\texttt{R_X86_64_GOT32} & 3 & \textit{word32} & \texttt{G + A} \\
\texttt{R_X86_64_PLT32} & 4 & \textit{word32} & \texttt{L + A - P} \\
@@ -487,6 +487,8 @@ or \texttt{Elf32_Rel} relocation.
% \texttt{R_X86_64_PLT64} & 17 & \textit{word64} & \texttt{L + A - P} \\
\cline{1-4}
\multicolumn{3}{l}{\small $^\dagger$ This relocation is used only
for LP64.}\\
+ \multicolumn{3}{l}{\small $^{\dagger\dagger}$ This relocation only
+ appears in relocatable files for X32.}\\
\end{tabular}
\end{center}
\Hrule
----
I opened:
http://sourceware.org/bugzilla/show_bug.cgi?id=13082
and will fix it.
--
H.J.