aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2011-01-14 04:24:00 +0000
committerH.J. Lu <hjl.tools@gmail.com>2011-01-14 04:24:00 +0000
commit82e96e07e5c45073273535cfe3ca665091199033 (patch)
tree29fdac6e6ad7108f9ba058555e9faecf0ac4391a /ld
parent175b7cd42c9adacf6fd3d4c70248c237647fa4fd (diff)
downloadgdb-82e96e07e5c45073273535cfe3ca665091199033.zip
gdb-82e96e07e5c45073273535cfe3ca665091199033.tar.gz
gdb-82e96e07e5c45073273535cfe3ca665091199033.tar.bz2
Fix x86-64 ILP32 shared library.
bfd/ 2011-01-13 H.J. Lu <hongjiu.lu@intel.com> * elf64-x86-64.c (elf_x86_64_link_hash_table): Remove swap_reloca_out. (elf_x86_64_link_hash_table_create): Don't set swap_reloca_out. (elf_x86_64_check_relocs): Align relocation section to 4 byte for 32bit. (elf_x86_64_gc_sweep_hook): Replace ELF64_ST_TYPE with ELF_ST_TYPE. (elf_x86_64_finish_dynamic_symbol): Updated. (elf_x86_64_finish_dynamic_sections): Don't use Elf64_External_Dyn, bfd_elf64_swap_dyn_in, nor bfd_elf64_swap_dyn_out. ld/testsuite/ 2011-01-13 H.J. Lu <hongjiu.lu@intel.com> * ld-x86-64/ilp32-4.d: New. * ld-x86-64/x86-64.exp: Run ilp32-4.
Diffstat (limited to 'ld')
-rw-r--r--ld/testsuite/ChangeLog6
-rw-r--r--ld/testsuite/ld-x86-64/ilp32-4.d36
-rw-r--r--ld/testsuite/ld-x86-64/x86-64.exp1
3 files changed, 43 insertions, 0 deletions
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog
index 94c35e3..02c0c34 100644
--- a/ld/testsuite/ChangeLog
+++ b/ld/testsuite/ChangeLog
@@ -1,5 +1,11 @@
2011-01-13 H.J. Lu <hongjiu.lu@intel.com>
+ * ld-x86-64/ilp32-4.d: New.
+
+ * ld-x86-64/x86-64.exp: Run ilp32-4.
+
+2011-01-13 H.J. Lu <hongjiu.lu@intel.com>
+
PR ld/12356
* ld-scripts/defined.exp: Run defined5.
diff --git a/ld/testsuite/ld-x86-64/ilp32-4.d b/ld/testsuite/ld-x86-64/ilp32-4.d
new file mode 100644
index 0000000..24fe4c5
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/ilp32-4.d
@@ -0,0 +1,36 @@
+#source: start.s
+#as: --n32
+#ld: -m elf32_x86_64 -shared
+#readelf: -d -S --wide
+
+There are 10 section headers, starting at offset 0x22c:
+
+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 0000f0 10 9 10 4
+ \[ 9\] .strtab STRTAB 00000000 0004ac 00005d 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:
+ Tag Type Name/Value
+ 0x00000004 \(HASH\) 0x94
+ 0x00000005 \(STRTAB\) 0x134
+ 0x00000006 \(SYMTAB\) 0xc4
+ 0x0000000a \(STRSZ\) 29 \(bytes\)
+ 0x0000000b \(SYMENT\) 16 \(bytes\)
+ 0x00000007 \(RELA\) 0x154
+ 0x00000008 \(RELASZ\) 12 \(bytes\)
+ 0x00000009 \(RELAENT\) 12 \(bytes\)
+ 0x00000016 \(TEXTREL\) 0x0
+ 0x00000000 \(NULL\) 0x0
diff --git a/ld/testsuite/ld-x86-64/x86-64.exp b/ld/testsuite/ld-x86-64/x86-64.exp
index 8e83ca8..3aec797 100644
--- a/ld/testsuite/ld-x86-64/x86-64.exp
+++ b/ld/testsuite/ld-x86-64/x86-64.exp
@@ -175,6 +175,7 @@ run_dump_test "compressed1"
run_dump_test "ilp32-1"
run_dump_test "ilp32-2"
run_dump_test "ilp32-3"
+run_dump_test "ilp32-4"
run_dump_test "ia32-1"
run_dump_test "ia32-2"
run_dump_test "ia32-3"