mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-08-06 14:49:38 +08:00
gas/
2009-09-24 H.J. Lu <hongjiu.lu@intel.com> PR gas/10677 * config/tc-i386.h (TC_FORCE_RELOCATION_LOCAL): Return true for BFD_RELOC_X86_64_GOTPCREL. gas/testsuite/ 2009-09-24 H.J. Lu <hongjiu.lu@intel.com> PR gas/10677 * gas/i386/i386.exp: Run x86-64-localpic. * gas/i386/x86-64-localpic.d: New. * gas/i386/x86-64-localpic.s: Likewise.
This commit is contained in:
gas
@ -1,3 +1,9 @@
|
|||||||
|
2009-09-24 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
|
PR gas/10677
|
||||||
|
* config/tc-i386.h (TC_FORCE_RELOCATION_LOCAL): Return true
|
||||||
|
for BFD_RELOC_X86_64_GOTPCREL.
|
||||||
|
|
||||||
2009-09-23 H.J. Lu <hongjiu.lu@intel.com>
|
2009-09-23 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
* config/tc-i386.h (TC_FORCE_RELOCATION_LOCAL): Don't check
|
* config/tc-i386.h (TC_FORCE_RELOCATION_LOCAL): Don't check
|
||||||
|
@ -156,6 +156,7 @@ extern int tc_i386_fix_adjustable (struct fix *);
|
|||||||
(!(FIX)->fx_pcrel \
|
(!(FIX)->fx_pcrel \
|
||||||
|| (FIX)->fx_r_type == BFD_RELOC_386_PLT32 \
|
|| (FIX)->fx_r_type == BFD_RELOC_386_PLT32 \
|
||||||
|| (FIX)->fx_r_type == BFD_RELOC_386_GOTPC \
|
|| (FIX)->fx_r_type == BFD_RELOC_386_GOTPC \
|
||||||
|
|| (FIX)->fx_r_type == BFD_RELOC_X86_64_GOTPCREL \
|
||||||
|| TC_FORCE_RELOCATION (FIX))
|
|| TC_FORCE_RELOCATION (FIX))
|
||||||
|
|
||||||
extern int i386_parse_name (char *, expressionS *, char *);
|
extern int i386_parse_name (char *, expressionS *, char *);
|
||||||
|
@ -1,3 +1,11 @@
|
|||||||
|
2009-09-24 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
|
PR gas/10677
|
||||||
|
* gas/i386/i386.exp: Run x86-64-localpic.
|
||||||
|
|
||||||
|
* gas/i386/x86-64-localpic.d: New.
|
||||||
|
* gas/i386/x86-64-localpic.s: Likewise.
|
||||||
|
|
||||||
2009-09-23 H.J. Lu <hongjiu.lu@intel.com>
|
2009-09-23 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
* gas/i386/localpic.d: Updated.
|
* gas/i386/localpic.d: Updated.
|
||||||
|
@ -338,21 +338,17 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_64_check]] t
|
|||||||
run_dump_test "rex"
|
run_dump_test "rex"
|
||||||
}
|
}
|
||||||
|
|
||||||
# For ELF targets verify that @unwind works.
|
|
||||||
if { ([istarget "*-*-elf*"] || [istarget "*-*-linux*"]
|
|
||||||
|| [istarget "*-*-solaris2.*"])
|
|
||||||
&& ![istarget *-*-linux*aout*]
|
|
||||||
&& ![istarget *-*-linux*oldld*] } then {
|
|
||||||
run_dump_test "x86-64-unwind"
|
|
||||||
}
|
|
||||||
|
|
||||||
# ELF specific tests
|
# ELF specific tests
|
||||||
if [is_elf_format] then {
|
if [is_elf_format] then {
|
||||||
|
# Verify that @unwind works.
|
||||||
|
run_dump_test "x86-64-unwind"
|
||||||
|
|
||||||
run_dump_test "reloc64"
|
run_dump_test "reloc64"
|
||||||
run_list_test "reloc64" "--defsym _bad_=1"
|
run_list_test "reloc64" "--defsym _bad_=1"
|
||||||
run_dump_test "mixed-mode-reloc64"
|
run_dump_test "mixed-mode-reloc64"
|
||||||
run_dump_test "x86-64-ifunc"
|
run_dump_test "x86-64-ifunc"
|
||||||
run_dump_test "l1om"
|
run_dump_test "l1om"
|
||||||
|
run_dump_test "x86-64-localpic"
|
||||||
}
|
}
|
||||||
|
|
||||||
set ASFLAGS "$old_ASFLAGS"
|
set ASFLAGS "$old_ASFLAGS"
|
||||||
|
9
gas/testsuite/gas/i386/x86-64-localpic.d
Normal file
9
gas/testsuite/gas/i386/x86-64-localpic.d
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
#readelf: -rs
|
||||||
|
#name: x86-64 local PIC
|
||||||
|
|
||||||
|
Relocation section '.rela.text' at offset 0x[0-9a-f]+ contains 1 entries:
|
||||||
|
Offset Info Type Sym. Value Sym. Name \+ Addend
|
||||||
|
[0-9a-f]+ +[0-9a-f]+ R_X86_64_GOTPCREL +[0-9a-f]+ +foo - 4
|
||||||
|
#...
|
||||||
|
+[0-9]+: +[0-9a-f]+ +[0-9a-f]+ +NOTYPE +LOCAL +DEFAULT +[0-9]+ +foo
|
||||||
|
#pass
|
4
gas/testsuite/gas/i386/x86-64-localpic.s
Normal file
4
gas/testsuite/gas/i386/x86-64-localpic.s
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
.text
|
||||||
|
foo:
|
||||||
|
.quad 0
|
||||||
|
movq foo@GOTPCREL(%rip), %rax
|
Reference in New Issue
Block a user