Remove ABI_64_P check on R_X86_64_PCXX

bfd/

2012-01-10  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/13581
	* elf64-x86-64.c (elf_x86_64_relocate_section): Remove ABI_64_P
	check on R_X86_64_PCXX.

ld/testsuite/

2012-01-10  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/13581
	* ld-x86-64/ilp32-4.s: New.
	* ld-x86-64/ilp32-10.d: Likewise.
	* ld-x86-64/ilp32-10.s: Likewise.

	* ld-x86-64/ilp32-4.d: Adjusted.
	* ld-x86-64/ilp32-5.d: Likewise.
	* ld-x86-64/ilp32-5.s: Likewise.

	* ld-x86-64/x86-64.exp: Run ilp32-10.
This commit is contained in:
H.J. Lu 2012-01-10 20:18:18 +00:00
parent 9934703b91
commit df4f944355
10 changed files with 44 additions and 22 deletions

View File

@ -1,3 +1,9 @@
2012-01-10 H.J. Lu <hongjiu.lu@intel.com>
PR ld/13581
* elf64-x86-64.c (elf_x86_64_relocate_section): Remove ABI_64_P
check on R_X86_64_PCXX.
2012-01-10 Tristan Gingold <gingold@adacore.com>
* mach-o.c (bfd_mach_o_build_commands): Avoid uninitialized false

View File

@ -3472,7 +3472,6 @@ elf_x86_64_relocate_section (bfd *output_bfd,
case R_X86_64_PC16:
case R_X86_64_PC32:
if (info->shared
&& ABI_64_P (output_bfd)
&& (input_section->flags & SEC_ALLOC) != 0
&& (input_section->flags & SEC_READONLY) != 0
&& h != NULL)

View File

@ -1,3 +1,16 @@
2012-01-10 H.J. Lu <hongjiu.lu@intel.com>
PR ld/13581
* ld-x86-64/ilp32-4.s: New.
* ld-x86-64/ilp32-10.d: Likewise.
* ld-x86-64/ilp32-10.s: Likewise.
* ld-x86-64/ilp32-4.d: Adjusted.
* ld-x86-64/ilp32-5.d: Likewise.
* ld-x86-64/ilp32-5.s: Likewise.
* ld-x86-64/x86-64.exp: Run ilp32-10.
2012-01-05 Nick Clifton <nickc@redhat.com>
* ld-x86-64/x86-64.exp: Add test of linking mixed 32-bit and

View File

@ -0,0 +1,3 @@
#as: --x32
#ld: -shared -melf32_x86_64
#error: .*relocation R_X86_64_PC32 against undefined symbol `bar' can not be used when making a shared object; recompile with -fPIC

View File

@ -0,0 +1,3 @@
.globl foo
foo:
mov bar(%rip), %rax

View File

@ -1,36 +1,30 @@
#source: start.s
#as: --x32
#ld: -m elf32_x86_64 -shared --no-ld-generated-unwind-info
#readelf: -d -S --wide
There are 10 section headers, starting at offset 0x22c:
There are 9 section headers, starting at offset 0x1d8:
Section Headers:
\[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al
\[ 0\] NULL 00000000 000000 000000 00 0 0 0
\[ 1\] .hash HASH 00000094 000094 000030 04 A 2 0 4
\[ 2\] .dynsym DYNSYM 000000c4 0000c4 000070 10 A 3 2 4
\[ 3\] .dynstr STRTAB 00000134 000134 00001d 00 A 0 0 1
\[ 4\] .rela.dyn RELA 00000154 000154 00000c 0c A 2 0 4
\[ 5\] .text PROGBITS 00000160 000160 000005 00 AX 0 0 4
\[ 6\] .dynamic DYNAMIC 00200168 000168 000078 08 WA 3 0 4
\[ 7\] .shstrtab STRTAB 00000000 0001e0 00004a 00 0 0 1
\[ 8\] .symtab SYMTAB 00000000 0003bc 0000e0 10 9 9 4
\[ 9\] .strtab STRTAB 00000000 00049c 000043 00 0 0 1
\[ 1\] .hash HASH 00000094 000094 00002c 04 A 2 0 4
\[ 2\] .dynsym DYNSYM 000000c0 0000c0 000060 10 A 3 2 4
\[ 3\] .dynstr STRTAB 00000120 000120 000019 00 A 0 0 1
\[ 4\] .text PROGBITS 0000013c 00013c 000001 00 AX 0 0 4
\[ 5\] .dynamic DYNAMIC 00200140 000140 000058 08 WA 3 0 4
\[ 6\] .shstrtab STRTAB 00000000 000198 000040 00 0 0 1
\[ 7\] .symtab SYMTAB 00000000 000340 0000c0 10 8 8 4
\[ 8\] .strtab STRTAB 00000000 000400 00003f 00 0 0 1
Key to Flags:
W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\), l \(large\)
I \(info\), L \(link order\), G \(group\), T \(TLS\), E \(exclude\), x \(unknown\)
O \(extra OS processing required\) o \(OS specific\), p \(processor specific\)
Dynamic section at offset 0x168 contains 10 entries:
Dynamic section at offset 0x140 contains 6 entries:
Tag Type Name/Value
0x00000004 \(HASH\) 0x94
0x00000005 \(STRTAB\) 0x134
0x00000006 \(SYMTAB\) 0xc4
0x0000000a \(STRSZ\) 29 \(bytes\)
0x00000005 \(STRTAB\) 0x120
0x00000006 \(SYMTAB\) 0xc0
0x0000000a \(STRSZ\) 25 \(bytes\)
0x0000000b \(SYMENT\) 16 \(bytes\)
0x00000007 \(RELA\) 0x154
0x00000008 \(RELASZ\) 12 \(bytes\)
0x00000009 \(RELAENT\) 12 \(bytes\)
0x00000016 \(TEXTREL\) 0x0
0x00000000 \(NULL\) 0x0

View File

@ -0,0 +1,3 @@
.globl _start
_start:
ret

View File

@ -4,5 +4,5 @@
#...
[0-9a-f]+ +[0-9a-f]+ +R_X86_64_RELATIVE +[0-9a-f]+
[0-9a-f]+ +[0-9a-f]+ +R_X86_64_PC32 +[0-9a-f]+ +foo - 4
[0-9a-f]+ +[0-9a-f]+ +R_X86_64_GLOB_DAT +[0-9a-f]+ +foo \+ 0
[0-9a-f]+ +[0-9a-f]+ +R_X86_64_32 +[0-9a-f]+ +foo \+ 0

View File

@ -1,6 +1,6 @@
.globl bar
bar:
mov foo(%rip), %rax
mov foo@GOTPCREL(%rip), %rax
.data
xxx:

View File

@ -211,6 +211,7 @@ run_dump_test "ilp32-6"
run_dump_test "ilp32-7"
run_dump_test "ilp32-8"
run_dump_test "ilp32-9"
run_dump_test "ilp32-10"
run_dump_test "ia32-1"
run_dump_test "ia32-2"
run_dump_test "ia32-3"