public inbox for archer-commits@sourceware.org
help / color / mirror / Atom feed
* [SCM] archer-jankratochvil-vla: Fix the merge.
@ 2011-01-15 11:34 jkratoch
0 siblings, 0 replies; only message in thread
From: jkratoch @ 2011-01-15 11:34 UTC (permalink / raw)
To: archer-commits
The branch, archer-jankratochvil-vla has been updated
via 3cd716647153e0f83b170235cf409ec9779f19cc (commit)
via 0642db1cdb31c66c18c2b2c0929dc72358164459 (commit)
via 809b81fbd06cc4a3c5a1b930a53ecb6304d31a58 (commit)
via c382ea4cb3cd4f4adb6c38ae8fc91f2cc7b57998 (commit)
via 4519eb03863a0545796b91f72db9905ad4d54dd3 (commit)
via 16b42d642118a4ecd243a92a3d30e6ec9ef79a61 (commit)
via 0c2a9d801d0e4408bf4d0f2626113dbe0975b1ab (commit)
via 42f46242b4239897ce78996e8031fb2b453b0f3a (commit)
via e00546ebc6c70d040e7c60c62bb36b365faf0fd4 (commit)
via b5963657c4f9bb09156162a65cc035ea55d1ae7f (commit)
via 3c2918a7e5bb6ae18918c69709484aa78428b4a5 (commit)
via 0e52d299faed3f6430189eb5b1b3e26c62258693 (commit)
via af373e307707382768713c023fcb27fefa354cf9 (commit)
via b18c57162019bdff244dc29515e319ea9d13626b (commit)
via 20541a0f11ccd017f244324bef98525430afd5c8 (commit)
via 2a1a3a7404d1f4acd07972de3d032c73d8d58560 (commit)
via 48bb01b777ff8fb052f1a5929ba8405e7d743292 (commit)
via 061e2c2f4e9bcb4e0ac90e88f7f7d268bde804c7 (commit)
via 0da3e49c580365820be2b987b249440a20cb7a3c (commit)
via d91fc7a0c85a7c766dffe52fdffc0045d3f9bc0f (commit)
via b953243d1c850a363213d86756758781d3cee226 (commit)
via 2c6b777e7c2cd56d6f5630375e33c64cefc129e5 (commit)
via 84c64d73f27c2def9f23dc6cfd1171da907ce3a1 (commit)
via a60996756955cc8cad77994629d622fed5572f16 (commit)
via 8fefa6e4f261647761bdcaa766a146870400332e (commit)
via b821d466c42caf0af01fb9ce64633ee81f0aca62 (commit)
via 80c01fc5c301000b6100ec2f19524415dbe5926d (commit)
via 840a7679a7dbbba41eb9c4ec9aadd691c6e22ca0 (commit)
via c9ac506053cefef4c28b5f516b473dd6b8246814 (commit)
via 29c91bff191d72fd6250268f2d7a7404fefc6b06 (commit)
via f478247912cdbcffe6133771aefc630e3add50cc (commit)
via db3e7c12614c66fb97a6ab699234ff38645297d9 (commit)
via a9f87e3912fbba019d1455b48e87b078b9521f37 (commit)
via 1342d6935c17dabec76c6aeab259af16382dcb87 (commit)
via a086a77f42fecf900f7d8c483479a65b140dc9be (commit)
via e4c94ef2808942f5b48023bf9970d1baf45c34ed (commit)
via 283012c3d7de73c3943d8e8d88dbb634fb468d2a (commit)
via 462473a4920f487e6ace773f068575010a766ea2 (commit)
via 499de1b6987b0d26b03ac25e06ad41dbc64f5f26 (commit)
via 1be1f93a991dd0172debb6f6f5371b82fd3e950c (commit)
via c274fff2b9736ccb8d58fe890ce39109585bc477 (commit)
via a5df084452a0c35f114f019854983a8cf7fdc1e4 (commit)
via c2e02cfa56813570cca008cd86491918abcdd4b8 (commit)
via 03a69f086df284607606d74838b772c05cc9793e (commit)
via a99699255d04d1068a4807a119c5a2b967f6d6f1 (commit)
via 91d92eade9b57f7baaa2c255d07ca42347f9204b (commit)
via 601e037e8e18057678379ee347c5a4f02874cf33 (commit)
via 5a26f459fc426a89e68d9e14d3672c2a8c67b15a (commit)
via b83c685cd25409cd1f384da01d3cd426b2efdbe3 (commit)
via 34669dd2ed9725f034bb56c05ed53b5204951195 (commit)
via 75a879d324cc7c934141a19636796b0e6a413863 (commit)
via b0f93df7fecd942b547f3f26138b8d4e524ceb77 (commit)
via ba15817d6ccb5496a44e51a6e9a7cb82e93de84c (commit)
via 93cb87058b1b0557ca9d766f5c0363bd437dcc8c (commit)
via 1f5de7484fa5977a31f02b218a1b745ea3d908bd (commit)
via afd0ae8df48a2757ca2e090f248aa182c767fb66 (commit)
via f7c014ebf61934b43a9eaa549cbec124fad44aab (commit)
via e88a6525f9ca04aad5afa8ddb045afb31195d037 (commit)
via c97eb2bc31d91975be87a349dbe716144502d585 (commit)
via a9462c6b594300ea2f00c850792dcaf32bcdb5dc (commit)
from 79092f2cbcd7ede37a20ce6119dc6883ba85849c (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email.
- Log -----------------------------------------------------------------
commit 3cd716647153e0f83b170235cf409ec9779f19cc
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Sat Jan 15 12:33:57 2011 +0100
Fix the merge.
commit 0642db1cdb31c66c18c2b2c0929dc72358164459
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Fri Jan 14 10:21:17 2011 +0100
diff reduction / fix
commit 809b81fbd06cc4a3c5a1b930a53ecb6304d31a58
Merge: 79092f2 c382ea4
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Fri Jan 14 10:17:16 2011 +0100
Merge remote branch 'origin/master' into archer-jankratochvil-vla
Conflicts:
gdb/dwarf2loc.c
gdb/dwarf2read.c
gdb/eval.c
gdb/findvar.c
gdb/valarith.c
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 10 +
bfd/ChangeLog | 71 ++
bfd/bfd-in2.h | 6 +
bfd/elf32-arm.c | 1026 ++++++++++++++++++++++++---
bfd/elf64-x86-64.c | 26 +-
bfd/libbfd.h | 6 +
bfd/reloc.c | 12 +
bfd/version.h | 2 +-
configure | 4 +-
configure.ac | 4 +-
gdb/ChangeLog | 497 +++++++++++++
gdb/Makefile.in | 5 +-
gdb/NEWS | 3 +
gdb/ada-lang.c | 19 +-
gdb/ada-valprint.c | 22 +-
gdb/arm-tdep.c | 10 +-
gdb/breakpoint.c | 330 ++++++---
gdb/breakpoint.h | 33 +-
gdb/c-lang.c | 4 +-
gdb/charset.c | 16 +-
gdb/coffread.c | 6 +-
gdb/config/ia64/hpux.mh | 3 +
gdb/configure.host | 6 +
gdb/configure.tgt | 7 +-
gdb/disasm.c | 14 +-
gdb/doc/ChangeLog | 19 +-
gdb/doc/gdb.texinfo | 106 +--
gdb/dwarf2loc.c | 3 +-
gdb/dwarf2read.c | 9 +-
gdb/eval.c | 3 +-
gdb/findvar.c | 123 ++--
gdb/fork-child.c | 2 +-
gdb/gdbtypes.c | 62 ++
gdb/gdbtypes.h | 2 +
gdb/h8300-tdep.c | 16 +-
gdb/hpux-thread.c | 13 -
gdb/ia64-hpux-nat.c | 703 ++++++++++++++++++
gdb/ia64-hpux-tdep.c | 434 +++++++++++
gdb/{version.h => ia64-hpux-tdep.h} | 20 +-
gdb/ia64-tdep.c | 177 ++++-
gdb/ia64-tdep.h | 45 ++
gdb/inf-child.c | 61 --
gdb/inf-ttrace.c | 53 ++-
gdb/inflow.c | 4 +-
gdb/iq2000-tdep.c | 2 +-
gdb/libunwind-frame.c | 30 +-
gdb/linux-nat.c | 22 +-
gdb/m32c-tdep.c | 12 +-
gdb/mep-tdep.c | 28 +-
gdb/mi/mi-cmd-break.c | 22 +-
gdb/mi/mi-cmd-disas.c | 42 +-
gdb/mi/mi-cmd-env.c | 14 +-
gdb/mi/mi-cmd-file.c | 10 +-
gdb/mi/mi-cmd-stack.c | 16 +-
gdb/mi/mi-cmd-target.c | 12 +-
gdb/mi/mi-cmd-var.c | 46 +-
gdb/mi/mi-interp.c | 9 +-
gdb/mi/mi-main.c | 38 +-
gdb/mi/mi-symbol-cmds.c | 4 +-
gdb/nto-procfs.c | 13 +-
gdb/nto-tdep.c | 6 +-
gdb/nto-tdep.h | 4 +-
gdb/objc-exp.y | 32 +-
gdb/objc-lang.c | 71 +-
gdb/objfiles.c | 62 +-
gdb/objfiles.h | 77 +-
gdb/observer.c | 14 +-
gdb/opencl-lang.c | 6 +-
gdb/osabi.c | 2 +-
gdb/p-exp.y | 92 ++-
gdb/p-lang.c | 10 +-
gdb/p-typeprint.c | 34 +-
gdb/p-valprint.c | 32 +-
gdb/parse.c | 52 +-
gdb/parser-defs.h | 16 +-
gdb/posix-hdep.c | 2 +-
gdb/ppc-linux-nat.c | 214 ++++---
gdb/ppc-linux-tdep.c | 30 +-
gdb/ppc-linux-tdep.h | 2 +-
gdb/ppc-sysv-tdep.c | 32 +-
gdb/ppc-tdep.h | 26 +-
gdb/ppcbug-rom.c | 11 +-
gdb/ppcnbsd-tdep.c | 4 +-
gdb/ppcobsd-tdep.c | 4 +-
gdb/ppcobsd-tdep.h | 2 +-
gdb/printcmd.c | 39 +-
gdb/proc-api.c | 4 +-
gdb/proc-flags.c | 4 +-
gdb/proc-utils.h | 2 +-
gdb/procfs.c | 253 ++++----
gdb/progspace.h | 4 +-
gdb/prologue-value.c | 2 +-
gdb/prologue-value.h | 2 +-
gdb/psympriv.h | 12 +-
gdb/psymtab.c | 62 +-
gdb/ravenscar-sparc-thread.c | 4 +-
gdb/ravenscar-thread.c | 5 +-
gdb/ravenscar-thread.h | 2 +-
gdb/record.c | 2 +-
gdb/regcache.c | 10 +-
gdb/regcache.h | 2 +-
gdb/remote-fileio.c | 42 +-
gdb/remote-fileio.h | 6 +-
gdb/remote-m32r-sdi.c | 104 ++--
gdb/remote-mips.c | 354 +++++----
gdb/remote-sim.c | 57 +-
gdb/remote.c | 118 ++--
gdb/remote.h | 2 +-
gdb/rs6000-aix-tdep.c | 40 +-
gdb/rs6000-nat.c | 128 ++--
gdb/rs6000-tdep.c | 108 ++-
gdb/s390-tdep.c | 21 +-
gdb/score-tdep.c | 157 +++--
gdb/score-tdep.h | 15 +-
gdb/ser-base.c | 51 +-
gdb/ser-go32.c | 72 +-
gdb/ser-mingw.c | 8 +-
gdb/ser-pipe.c | 16 +-
gdb/ser-tcp.c | 31 +-
gdb/ser-unix.c | 34 +-
gdb/serial.c | 28 +-
gdb/serial.h | 22 +-
gdb/sh-tdep.c | 179 +++---
gdb/sh-tdep.h | 4 +-
gdb/sh64-tdep.c | 230 ++++---
gdb/shnbsd-nat.c | 2 +-
gdb/sol-thread.c | 8 +-
gdb/solib-darwin.c | 4 +-
gdb/solib-frv.c | 12 +-
gdb/solib-ia64-hpux.c | 700 ++++++++++++++++++
gdb/{version.h => solib-ia64-hpux.h} | 21 +-
gdb/solib-irix.c | 12 +-
gdb/solib-osf.c | 18 +-
gdb/solib-pa64.c | 30 +-
gdb/solib-som.c | 53 +-
gdb/solib-spu.c | 2 +-
gdb/solib-sunos.c | 44 +-
gdb/solib-svr4.c | 27 +-
gdb/solib.c | 14 +-
gdb/solib.h | 6 +-
gdb/solist.h | 12 +-
gdb/somread.c | 28 +-
gdb/source.c | 105 ++--
gdb/source.h | 12 +-
gdb/sparc-linux-nat.c | 3 +-
gdb/sparc-linux-tdep.c | 8 +-
gdb/sparc-sol2-nat.c | 5 +-
gdb/sparc-sol2-tdep.c | 2 +-
gdb/sparc-tdep.c | 4 +-
gdb/sparc-tdep.h | 2 +-
gdb/sparc64-linux-tdep.c | 6 +-
gdb/sparc64-tdep.c | 2 +-
gdb/spu-tdep.c | 34 +-
gdb/stabsread.c | 193 +++---
gdb/stabsread.h | 12 +-
gdb/stack.c | 16 +-
gdb/symfile.c | 163 ++--
gdb/symfile.h | 6 +-
gdb/symmisc.c | 10 +-
gdb/symtab.c | 177 +++---
gdb/symtab.h | 116 ++--
gdb/target-descriptions.c | 2 +-
gdb/target-descriptions.h | 2 +-
gdb/target-memory.c | 2 +-
gdb/target.c | 132 ++--
gdb/target.h | 79 ++-
gdb/terminal.h | 4 +-
gdb/testsuite/ChangeLog | 54 ++
gdb/testsuite/gdb.base/foll-exec.exp | 2 +-
gdb/testsuite/gdb.base/foll-fork.exp | 2 +-
gdb/testsuite/gdb.base/foll-vfork.exp | 2 +-
gdb/testsuite/gdb.base/interact.exp | 48 ++
gdb/testsuite/gdb.fortran/multi-dim.exp | 77 ++
gdb/testsuite/gdb.fortran/multi-dim.f90 | 29 +
gdb/testsuite/gdb.mi/gdb2549.exp | 2 +-
gdb/testsuite/gdb.mi/mi-cli.exp | 6 +-
gdb/testsuite/gdb.mi/mi-disassemble.exp | 58 ++-
gdb/testsuite/gdb.mi/mi-pthreads.exp | 2 +-
gdb/testsuite/gdb.mi/mi-regs.exp | 2 +-
gdb/testsuite/gdb.mi/mi-stack.exp | 8 +-
gdb/testsuite/gdb.mi/mi-var-block.exp | 2 +-
gdb/testsuite/gdb.mi/mi-var-cmd.exp | 10 +-
gdb/testsuite/gdb.mi/mi2-cli.exp | 6 +-
gdb/testsuite/gdb.mi/mi2-disassemble.exp | 58 ++-
gdb/testsuite/gdb.mi/mi2-pthreads.exp | 2 +-
gdb/testsuite/gdb.mi/mi2-regs.exp | 2 +-
gdb/testsuite/gdb.mi/mi2-stack.exp | 8 +-
gdb/testsuite/gdb.mi/mi2-var-block.exp | 2 +-
gdb/testsuite/gdb.mi/mi2-var-cmd.exp | 10 +-
gdb/testsuite/gdb.python/py-cmd.exp | 18 +-
gdb/testsuite/gdb.python/py-function.exp | 18 +-
gdb/testsuite/gdb.python/py-infthread.exp | 2 +
gdb/testsuite/gdb.python/python.exp | 18 -
gdb/thread.c | 36 +-
gdb/top.c | 16 +-
gdb/tracepoint.c | 171 +++---
gdb/tracepoint.h | 4 +-
gdb/trad-frame.h | 4 +-
gdb/typeprint.c | 6 +-
gdb/ui-file.c | 22 +-
gdb/ui-file.h | 20 +-
gdb/ui-out.c | 60 +-
gdb/ui-out.h | 20 +-
gdb/utils.c | 82 +-
gdb/v850-tdep.c | 16 +-
gdb/valarith.c | 63 +-
gdb/valops.c | 46 +-
gdb/valprint.c | 112 ++--
gdb/valprint.h | 2 +-
gdb/value.c | 52 +-
gdb/value.h | 2 +-
gdb/varobj.c | 317 ++++----
gdb/varobj.h | 16 +-
gdb/vax-tdep.c | 2 +-
gdb/vec.c | 6 +-
gdb/vec.h | 28 +-
gdb/version.h | 4 +-
gdb/version.in | 2 +-
gdb/windows-nat.c | 247 ++++---
gdb/windows-tdep.c | 25 +-
gdb/xcoffread.c | 207 +++---
gdb/xcoffsolib.c | 2 +-
gdb/xml-support.c | 8 +-
gdb/xstormy16-tdep.c | 88 ++-
gdb/xtensa-tdep.c | 90 ++-
gdb/xtensa-tdep.h | 4 +-
include/ChangeLog | 4 +
include/dwarf2.h | 2 +-
include/elf/ChangeLog | 7 +
include/elf/arm.h | 8 +-
include/gdb/ChangeLog | 5 +
include/gdb/remote-sim.h | 12 +-
ltmain.sh | 2 +-
opcodes/ChangeLog | 13 +
opcodes/mips-dis.c | 3 +-
opcodes/po/da.po | 1140 ++++++++++++++++++++++++-----
opcodes/rx-dis.c | 1 +
sim/common/ChangeLog | 33 +
sim/common/aclocal.m4 | 5 +-
sim/common/hw-device.h | 6 +-
sim/common/sim-hw.c | 2 +-
sim/common/sim-hw.h | 2 +-
sim/common/sim-memopt.c | 40 +-
sim/common/sim-module.c | 3 +-
sim/common/sim-options.c | 7 +-
sim/common/sim-utils.c | 7 +-
sim/common/sim-watch.c | 7 +-
sim/erc32/ChangeLog | 5 +
sim/erc32/interf.c | 2 +-
sim/h8300/ChangeLog | 5 +
sim/h8300/compile.c | 2 +-
sim/m32c/ChangeLog | 5 +
sim/m32c/gdb-if.c | 4 +-
sim/mn10300/ChangeLog | 5 +
sim/mn10300/interp.c | 2 +-
sim/ppc/ChangeLog | 5 +
sim/ppc/gdb-sim.c | 2 +-
sim/rx/ChangeLog | 5 +
sim/rx/gdb-if.c | 6 +-
sim/v850/ChangeLog | 5 +
sim/v850/interp.c | 2 +-
261 files changed, 9115 insertions(+), 3957 deletions(-)
create mode 100644 gdb/config/ia64/hpux.mh
create mode 100644 gdb/ia64-hpux-nat.c
create mode 100644 gdb/ia64-hpux-tdep.c
copy gdb/{version.h => ia64-hpux-tdep.h} (62%)
create mode 100644 gdb/solib-ia64-hpux.c
copy gdb/{version.h => solib-ia64-hpux.h} (62%)
create mode 100644 gdb/testsuite/gdb.base/interact.exp
create mode 100644 gdb/testsuite/gdb.fortran/multi-dim.exp
create mode 100644 gdb/testsuite/gdb.fortran/multi-dim.f90
First 500 lines of diff:
diff --git a/ChangeLog b/ChangeLog
index 5a48a71..aeb360f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2010-12-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * ltmain.sh (relink): Use absolute path when hardcoding with -L.
+
+2011-01-13 Joel Brobecker <brobecker@adacore.com>
+
+ * configure.ac: Remove readline, mmalloc, and gdb from noconfigdirs
+ for ia64-hpux.
+ * configure: Regenerate.
+
2011-01-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Sync from GCC:
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index c2c0157..326b326 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,74 @@
+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.
+
+2011-01-14 J. Park <grassman@gmail.com>
+
+ PR ld/12339
+ * elf32-arm.c (allocate_dynrelocs): Don't set up eh before
+ following bfd_link_hash_warning symbol link.
+
+2011-01-10 Nathan Sidwell <nathan@codesourcery.com>
+ Glauber de Oliveira Costa <glommer@gmail.com>
+
+ * reloc.c (BFD_RELOC_ARM_TLS_GOTDESC, BFD_RELOC_ARM_TLS_CALL,
+ BFD_RELOC_ARM_THM_TLS_CALL, BFD_RELOC_ARM_TLS_DESCSEQ,
+ BFD_RELOC_ARM_THM_TLS_DESCSEQ, BFD_RELOC_ARM_TLS_DESC): New
+ relocations.
+ * libbfd.h: Rebuilt.
+ * bfd-in2.h: Rebuilt.
+ * elf32-arm.c (elf32_arm_howto_table_1): Add new relocations.
+ (elf32_arm_reloc_map): Likewise.
+ (tls_trampoline, dl_tlsdesc_lazy_trampoline): New PLT templates.
+ (elf32_arm_stub_long_branch_any_tls_pic,
+ elf32_arm_stub_long_branch_v4t_thumb_tls_pic): New stub templates.
+ (DEF_STUBS): Add new stubs.
+ (struct_elf_arm_obj_data): Add local_tlsdesc_gotent field.
+ (elf32_arm_local_tlsdesc_gotent): New.
+ (GOT_TLS_GDESC): New mask.
+ (GOT_TLS_GD_ANY): Define.
+ (struct elf32_arm_link_hash_entry): Add tlsdesc_got field.
+ (elf32_arm_compute_jump_table_size): New.
+ (struct elf32_arm_link_hash_table): Add next_tls_desc_index,
+ num_tls_desc, dt_tlsdesc_plt, dt_tlsdesc_got, tls_trampoline,
+ sgotplt_jump_table_size fields.
+ (elf32_arm_link_hash_newfunc): Initialize tlsdesc_got field.
+ (elf32_arm_link_hash_table_create): Initialize new fields.
+ (arm_type_of_stub): Check TLS desc relocs too.
+ (elf32_arm_stub_name): TLS desc relocs can be shared.
+ (elf32_arm_tls_transition): Determine relaxation.
+ (arm_stub_required_alignment): Add tls stubs.
+ (elf32_arm_size_stubs): Likewise.
+ (elf32_arm_tls_relax): Perform TLS relaxing.
+ (elf32_arm_final_link_relocate): Process TLS DESC relocations.
+ (IS_ARM_TLS_GNU_RELOC): New.
+ (IS_ARM_TLS_RELOC): Use it.
+ (elf32_arm_relocate_section): Perform TLS relaxing.
+ (elf32_arm_check_relocs): Anticipate TLS relaxing, process tls
+ desc relocations.
+ (allocate_dynrelocs): Allocate tls desc relcoations.
+ (elf32_arm_output_arch_local_syms): Emit tls trampoline mapping
+ symbols.
+ (elf32_arm_size_dynamic_sections): Allocate tls trampolines and
+ got slots.
+ (elf32_arm_always_size_sections): New. Create _TLS_MODULE_BASE
+ symbol.
+ (elf32_arm_finish_dynamic_symbol): Adjust.
+ (arm_put_trampoline): New.
+ (elf32_arm_finish_dynamic_sections): Emit new dynamic tags and tls
+ trampolines.
+ (elf_backend_always_size_sections): Define.
+
2011-01-06 H.J. Lu <hongjiu.lu@intel.com>
* elf-ifunc.c (_bfd_elf_allocate_ifunc_dyn_relocs): Optimized.
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 8531f8d..84fc75d 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -3146,6 +3146,12 @@ pc-relative or some form of GOT-indirect relocation. */
BFD_RELOC_ARM_TLS_TPOFF32,
BFD_RELOC_ARM_TLS_IE32,
BFD_RELOC_ARM_TLS_LE32,
+ BFD_RELOC_ARM_TLS_GOTDESC,
+ BFD_RELOC_ARM_TLS_CALL,
+ BFD_RELOC_ARM_THM_TLS_CALL,
+ BFD_RELOC_ARM_TLS_DESCSEQ,
+ BFD_RELOC_ARM_THM_TLS_DESCSEQ,
+ BFD_RELOC_ARM_TLS_DESC,
/* ARM group relocations. */
BFD_RELOC_ARM_ALU_PC_G0_NC,
diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
index 7c8eb68..6fdd500 100644
--- a/bfd/elf32-arm.c
+++ b/bfd/elf32-arm.c
@@ -1,6 +1,6 @@
/* 32-bit ELF support for ARM
Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
- 2008, 2009, 2010 Free Software Foundation, Inc.
+ 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.
@@ -261,18 +261,18 @@ static reloc_howto_type elf32_arm_howto_table_1[] =
0xffffffff, /* dst_mask */
FALSE), /* pcrel_offset */
- HOWTO (R_ARM_SWI24, /* type */
+ HOWTO (R_ARM_TLS_DESC, /* type */
0, /* rightshift */
- 0, /* size (0 = byte, 1 = short, 2 = long) */
- 0, /* bitsize */
+ 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 32, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
- complain_overflow_signed,/* complain_on_overflow */
+ complain_overflow_bitfield,/* complain_on_overflow */
bfd_elf_generic_reloc, /* special_function */
- "R_ARM_SWI24", /* name */
+ "R_ARM_TLS_DESC", /* name */
FALSE, /* partial_inplace */
- 0x00000000, /* src_mask */
- 0x00000000, /* dst_mask */
+ 0xffffffff, /* src_mask */
+ 0xffffffff, /* dst_mask */
FALSE), /* pcrel_offset */
HOWTO (R_ARM_THM_SWI8, /* type */
@@ -1352,10 +1352,61 @@ static reloc_howto_type elf32_arm_howto_table_1[] =
0x040f70ff, /* dst_mask */
FALSE), /* pcrel_offset */
- EMPTY_HOWTO (90), /* Unallocated. */
- EMPTY_HOWTO (91),
- EMPTY_HOWTO (92),
- EMPTY_HOWTO (93),
+ HOWTO (R_ARM_TLS_GOTDESC, /* type */
+ 0, /* rightshift */
+ 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 32, /* bitsize */
+ FALSE, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_bitfield,/* complain_on_overflow */
+ NULL, /* special_function */
+ "R_ARM_TLS_GOTDESC", /* name */
+ TRUE, /* partial_inplace */
+ 0xffffffff, /* src_mask */
+ 0xffffffff, /* dst_mask */
+ FALSE), /* pcrel_offset */
+
+ HOWTO (R_ARM_TLS_CALL, /* type */
+ 0, /* rightshift */
+ 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 24, /* bitsize */
+ FALSE, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_dont,/* complain_on_overflow */
+ bfd_elf_generic_reloc, /* special_function */
+ "R_ARM_TLS_CALL", /* name */
+ FALSE, /* partial_inplace */
+ 0x00ffffff, /* src_mask */
+ 0x00ffffff, /* dst_mask */
+ FALSE), /* pcrel_offset */
+
+ HOWTO (R_ARM_TLS_DESCSEQ, /* type */
+ 0, /* rightshift */
+ 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* bitsize */
+ FALSE, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_bitfield,/* complain_on_overflow */
+ bfd_elf_generic_reloc, /* special_function */
+ "R_ARM_TLS_DESCSEQ", /* name */
+ FALSE, /* partial_inplace */
+ 0x00000000, /* src_mask */
+ 0x00000000, /* dst_mask */
+ FALSE), /* pcrel_offset */
+
+ HOWTO (R_ARM_THM_TLS_CALL, /* type */
+ 0, /* rightshift */
+ 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 24, /* bitsize */
+ FALSE, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_dont,/* complain_on_overflow */
+ bfd_elf_generic_reloc, /* special_function */
+ "R_ARM_THM_TLS_CALL", /* name */
+ FALSE, /* partial_inplace */
+ 0x07ff07ff, /* src_mask */
+ 0x07ff07ff, /* dst_mask */
+ FALSE), /* pcrel_offset */
HOWTO (R_ARM_PLT32_ABS, /* type */
0, /* rightshift */
@@ -1599,6 +1650,38 @@ static reloc_howto_type elf32_arm_howto_table_1[] =
0x00000fff, /* src_mask */
0x00000fff, /* dst_mask */
FALSE), /* pcrel_offset */
+
+ EMPTY_HOWTO (112),
+ EMPTY_HOWTO (113),
+ EMPTY_HOWTO (114),
+ EMPTY_HOWTO (115),
+ EMPTY_HOWTO (116),
+ EMPTY_HOWTO (117),
+ EMPTY_HOWTO (118),
+ EMPTY_HOWTO (119),
+ EMPTY_HOWTO (120),
+ EMPTY_HOWTO (121),
+ EMPTY_HOWTO (122),
+ EMPTY_HOWTO (123),
+ EMPTY_HOWTO (124),
+ EMPTY_HOWTO (125),
+ EMPTY_HOWTO (126),
+ EMPTY_HOWTO (127),
+ EMPTY_HOWTO (128),
+
+ HOWTO (R_ARM_THM_TLS_DESCSEQ, /* type */
+ 0, /* rightshift */
+ 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* bitsize */
+ FALSE, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_bitfield,/* complain_on_overflow */
+ bfd_elf_generic_reloc, /* special_function */
+ "R_ARM_THM_TLS_DESCSEQ",/* name */
+ FALSE, /* partial_inplace */
+ 0x00000000, /* src_mask */
+ 0x00000000, /* dst_mask */
+ FALSE), /* pcrel_offset */
};
/* 112-127 private relocations
@@ -1730,6 +1813,12 @@ static const struct elf32_arm_reloc_map elf32_arm_reloc_map[] =
{BFD_RELOC_ARM_PREL31, R_ARM_PREL31},
{BFD_RELOC_ARM_TARGET2, R_ARM_TARGET2},
{BFD_RELOC_ARM_PLT32, R_ARM_PLT32},
+ {BFD_RELOC_ARM_TLS_GOTDESC, R_ARM_TLS_GOTDESC},
+ {BFD_RELOC_ARM_TLS_CALL, R_ARM_TLS_CALL},
+ {BFD_RELOC_ARM_THM_TLS_CALL, R_ARM_THM_TLS_CALL},
+ {BFD_RELOC_ARM_TLS_DESCSEQ, R_ARM_TLS_DESCSEQ},
+ {BFD_RELOC_ARM_THM_TLS_DESCSEQ, R_ARM_THM_TLS_DESCSEQ},
+ {BFD_RELOC_ARM_TLS_DESC, R_ARM_TLS_DESC},
{BFD_RELOC_ARM_TLS_GD32, R_ARM_TLS_GD32},
{BFD_RELOC_ARM_TLS_LDO32, R_ARM_TLS_LDO32},
{BFD_RELOC_ARM_TLS_LDM32, R_ARM_TLS_LDM32},
@@ -1912,6 +2001,26 @@ typedef unsigned short int insn16;
section. */
#define ELF_DYNAMIC_INTERPRETER "/usr/lib/ld.so.1"
+static const unsigned long tls_trampoline [] =
+ {
+ 0xe08e0000, /* add r0, lr, r0 */
+ 0xe5901004, /* ldr r1, [r0,#4] */
+ 0xe12fff11, /* bx r1 */
+ };
+
+static const unsigned long dl_tlsdesc_lazy_trampoline [] =
+ {
+ 0xe52d2004, /* push {r2} */
+ 0xe59f200c, /* ldr r2, [pc, #3f - . - 8] */
+ 0xe59f100c, /* ldr r1, [pc, #4f - . - 8] */
+ 0xe79f2002, /* 1: ldr r2, [pc, r2] */
+ 0xe081100f, /* 2: add r1, pc */
+ 0xe12fff12, /* bx r2 */
+ 0x00000014, /* 3: .word _GLOBAL_OFFSET_TABLE_ - 1b - 8
+ + dl_tlsdesc_lazy_resolver(GOT) */
+ 0x00000018, /* 4: .word _GLOBAL_OFFSET_TABLE_ - 2b - 8 */
+ };
+
#ifdef FOUR_WORD_PLT
/* The first entry in a procedure linkage table looks like
@@ -2167,6 +2276,26 @@ static const insn_sequence elf32_arm_stub_long_branch_v4t_thumb_thumb_pic[] =
DATA_WORD(0, R_ARM_REL32, 0), /* dcd R_ARM_REL32(X) */
};
+/* Thumb2/ARM -> TLS trampoline. Lowest common denominator, which is a
+ long PIC stub. We can use r1 as a scratch -- and cannot use ip. */
+static const insn_sequence elf32_arm_stub_long_branch_any_tls_pic[] =
+{
+ ARM_INSN(0xe59f1000), /* ldr r1, [pc] */
+ ARM_INSN(0xe08ff001), /* add pc, pc, r1 */
+ DATA_WORD(0, R_ARM_REL32, -4), /* dcd R_ARM_REL32(X-4) */
+};
+
+/* V4T Thumb -> TLS trampoline. lowest common denominator, which is a
+ long PIC stub. We can use r1 as a scratch -- and cannot use ip. */
+static const insn_sequence elf32_arm_stub_long_branch_v4t_thumb_tls_pic[] =
+{
+ THUMB16_INSN(0x4778), /* bx pc */
+ THUMB16_INSN(0x46c0), /* nop */
+ ARM_INSN(0xe59f1000), /* ldr r1, [pc, #0] */
+ ARM_INSN(0xe081f00f), /* add pc, r1, pc */
+ DATA_WORD(0, R_ARM_REL32, -4), /* dcd R_ARM_REL32(X) */
+};
+
/* Cortex-A8 erratum-workaround stubs. */
/* Stub used for conditional branches (which may be beyond +/-1MB away, so we
@@ -2218,6 +2347,8 @@ static const insn_sequence elf32_arm_stub_a8_veneer_blx[] =
DEF_STUB(long_branch_v4t_arm_thumb_pic) \
DEF_STUB(long_branch_v4t_thumb_arm_pic) \
DEF_STUB(long_branch_thumb_only_pic) \
+ DEF_STUB(long_branch_any_tls_pic) \
+ DEF_STUB(long_branch_v4t_thumb_tls_pic) \
DEF_STUB(a8_veneer_b_cond) \
DEF_STUB(a8_veneer_b) \
DEF_STUB(a8_veneer_bl) \
@@ -2426,6 +2557,9 @@ struct elf_arm_obj_tdata
/* tls_type for each local got entry. */
char *local_got_tls_type;
+ /* GOTPLT entries for TLS descriptors. */
+ bfd_vma *local_tlsdesc_gotent;
+
/* Zero to warn when linking objects with incompatible enum sizes. */
int no_enum_size_warning;
@@ -2439,6 +2573,9 @@ struct elf_arm_obj_tdata
#define elf32_arm_local_got_tls_type(bfd) \
(elf_arm_tdata (bfd)->local_got_tls_type)
+#define elf32_arm_local_tlsdesc_gotent(bfd) \
+ (elf_arm_tdata (bfd)->local_tlsdesc_gotent)
+
#define is_arm_elf(bfd) \
(bfd_get_flavour (bfd) == bfd_target_elf_flavour \
&& elf_tdata (bfd) != NULL \
@@ -2478,8 +2615,14 @@ struct elf32_arm_link_hash_entry
#define GOT_NORMAL 1
#define GOT_TLS_GD 2
#define GOT_TLS_IE 4
+#define GOT_TLS_GDESC 8
+#define GOT_TLS_GD_ANY_P(type) ((type & GOT_TLS_GD) || (type & GOT_TLS_GDESC))
unsigned char tls_type;
+ /* Offset of the GOTPLT entry reserved for the TLS descriptor,
+ starting at the end of the jump table. */
+ bfd_vma tlsdesc_got;
+
/* The symbol marking the real symbol location for exported thumb
symbols with Arm stubs. */
struct elf_link_hash_entry *export_glue;
@@ -2516,6 +2659,9 @@ struct map_stub
asection *stub_sec;
};
+#define elf32_arm_compute_jump_table_size(htab) \
+ ((htab)->next_tls_desc_index * 4)
+
/* ARM ELF linker hash table. */
struct elf32_arm_link_hash_table
{
@@ -2594,6 +2740,12 @@ struct elf32_arm_link_hash_table
/* True if the target uses REL relocations. */
int use_rel;
+ /* The index of the next unused R_ARM_TLS_DESC slot in .rel.plt. */
+ bfd_vma next_tls_desc_index;
+
+ /* How many R_ARM_TLS_DESC relocations were generated so far. */
+ bfd_vma num_tls_desc;
+
/* Short-cuts to get to dynamic linker sections. */
asection *sdynbss;
asection *srelbss;
@@ -2601,6 +2753,19 @@ struct elf32_arm_link_hash_table
/* The (unloaded but important) VxWorks .rela.plt.unloaded section. */
asection *srelplt2;
+ /* The offset into splt of the PLT entry for the TLS descriptor
+ resolver. Special values are 0, if not necessary (or not found
+ to be necessary yet), and -1 if needed but not determined
+ yet. */
+ bfd_vma dt_tlsdesc_plt;
+
+ /* The offset into sgot of the GOT entry used by the PLT entry
+ above. */
+ bfd_vma dt_tlsdesc_got;
+
+ /* Offset in .plt section of tls_arm_trampoline. */
+ bfd_vma tls_trampoline;
+
/* Data for R_ARM_TLS_LDM32 relocations. */
union
{
@@ -2614,6 +2779,10 @@ struct elf32_arm_link_hash_table
/* For convenience in allocate_dynrelocs. */
bfd * obfd;
+ /* The amount of space used by the reserved portion of the sgotplt
+ section, plus whatever space is used by the jump slots. */
+ bfd_vma sgotplt_jump_table_size;
+
/* The stub hash table. */
struct bfd_hash_table stub_hash_table;
@@ -2663,6 +2832,7 @@ elf32_arm_link_hash_newfunc (struct bfd_hash_entry * entry,
{
ret->dyn_relocs = NULL;
ret->tls_type = GOT_UNKNOWN;
+ ret->tlsdesc_got = (bfd_vma) -1;
ret->plt_thumb_refcount = 0;
ret->plt_maybe_thumb_refcount = 0;
ret->plt_got_offset = -1;
@@ -2877,6 +3047,11 @@ elf32_arm_link_hash_table_create (bfd *abfd)
ret->sdynbss = NULL;
ret->srelbss = NULL;
ret->srelplt2 = NULL;
+ ret->dt_tlsdesc_plt = 0;
+ ret->dt_tlsdesc_got = 0;
+ ret->tls_trampoline = 0;
+ ret->next_tls_desc_index = 0;
+ ret->num_tls_desc = 0;
ret->thumb_glue_size = 0;
ret->arm_glue_size = 0;
ret->bx_glue_size = 0;
@@ -3075,7 +3250,8 @@ arm_type_of_stub (struct bfd_link_info *info,
branch_offset = (bfd_signed_vma)(destination - location);
- if (r_type == R_ARM_THM_CALL || r_type == R_ARM_THM_JUMP24)
+ if (r_type == R_ARM_THM_CALL || r_type == R_ARM_THM_JUMP24
+ || r_type == R_ARM_THM_TLS_CALL)
{
/* Handle cases where:
- this call goes too far (different Thumb/Thumb2 max
@@ -3092,7 +3268,8 @@ arm_type_of_stub (struct bfd_link_info *info,
&& (branch_offset > THM2_MAX_FWD_BRANCH_OFFSET
|| (branch_offset < THM2_MAX_BWD_BRANCH_OFFSET)))
|| ((st_type != STT_ARM_TFUNC)
- && (((r_type == R_ARM_THM_CALL) && !globals->use_blx)
+ && (((r_type == R_ARM_THM_CALL
+ || r_type == R_ARM_THM_TLS_CALL) && !globals->use_blx)
|| (r_type == R_ARM_THM_JUMP24))
&& !use_plt))
{
@@ -3143,18 +3320,21 @@ arm_type_of_stub (struct bfd_link_info *info,
sym_sec->owner, input_bfd, name);
}
- stub_type = (info->shared | globals->pic_veneer)
+ stub_type =
+ (info->shared | globals->pic_veneer)
/* PIC stubs. */
- ? ((globals->use_blx
- && (r_type ==R_ARM_THM_CALL))
- /* V5T and above. */
- ? arm_stub_long_branch_any_arm_pic
- /* V4T PIC stub. */
- : arm_stub_long_branch_v4t_thumb_arm_pic)
+ ? (r_type == R_ARM_THM_TLS_CALL
+ /* TLS PIC stubs */
+ ? (globals->use_blx ? arm_stub_long_branch_any_tls_pic
+ : arm_stub_long_branch_v4t_thumb_tls_pic)
+ : ((globals->use_blx && r_type == R_ARM_THM_CALL)
+ /* V5T PIC and above. */
+ ? arm_stub_long_branch_any_arm_pic
+ /* V4T PIC stub. */
+ : arm_stub_long_branch_v4t_thumb_arm_pic))
/* non-PIC stubs. */
- : ((globals->use_blx
- && (r_type ==R_ARM_THM_CALL))
+ : ((globals->use_blx && r_type == R_ARM_THM_CALL)
/* V5T and above. */
? arm_stub_long_branch_any_any
/* V4T. */
@@ -3170,7 +3350,8 @@ arm_type_of_stub (struct bfd_link_info *info,
}
else if (r_type == R_ARM_CALL
|| r_type == R_ARM_JUMP24
- || r_type == R_ARM_PLT32)
+ || r_type == R_ARM_PLT32
+ || r_type == R_ARM_TLS_CALL)
hooks/post-receive
--
Repository for Project Archer.
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2011-01-15 11:34 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-01-15 11:34 [SCM] archer-jankratochvil-vla: Fix the merge jkratoch
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).