From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27898 invoked by alias); 4 Dec 2010 19:31:57 -0000 Mailing-List: contact archer-commits-help@sourceware.org; run by ezmlm Sender: Precedence: bulk List-Post: List-Help: List-Subscribe: Received: (qmail 27837 invoked by uid 9674); 4 Dec 2010 19:31:54 -0000 Date: Sat, 04 Dec 2010 19:31:00 -0000 Message-ID: <20101204193154.27822.qmail@sourceware.org> From: jkratoch@sourceware.org To: archer-commits@sourceware.org Subject: [SCM] archer-jankratochvil-watchpoint3: fix X-Git-Refname: refs/heads/archer-jankratochvil-watchpoint3 X-Git-Reftype: branch X-Git-Oldrev: eda2ab32ee7d512b37ce57b685d2a6ac017c9292 X-Git-Newrev: b0bf332e0049f220e14e9d9c41f96bb73e940e55 X-SW-Source: 2010-q4/txt/msg00098.txt.bz2 List-Id: The branch, archer-jankratochvil-watchpoint3 has been updated via b0bf332e0049f220e14e9d9c41f96bb73e940e55 (commit) via 7b487c27c9877deb4606ed7ad83b7fd267ff434e (commit) via 0ab876c319e2864d54dd614f1a4c61cbdf4db9ed (commit) via 44f4b20ab28a35da447ae09ae7f21b2f6e5f1a31 (commit) via 9394a5f8e50bd8df377c4c1e03e59642815b01af (commit) via cee9c029e8db69cd50ece11b65f1b51445bf1ded (commit) via 15788a5805a502942b4be567eecb355859e6c179 (commit) via 5fcaa7c21f47764cbc4c62968aa10bb4ff98e1a5 (commit) via 27340204311a2866f99ad03994bcb15e2c7cf31b (commit) via 076cf01fa5d07806f03e26afebd181ad4189bf05 (commit) via 8e8cccf62c844a3e6c5bd4d83d17e8c9524a4a53 (commit) via 43bc0813e0971ead8195028935c804d707d97b0a (commit) via 8d09ceb05be685c540469d4a6b726c8eef3b3c72 (commit) via 609e018959c7aa390ea3aefdf360971ff1683335 (commit) via 250315712b8621a9d3ad400dfb4333f71564b21c (commit) via ae4029a1b3a9b71bfa5311763201aeee4deebf9b (commit) via a3d62c38050b4871fa20ba93e2fae0bd649f808f (commit) via 40b3754dd3c4e3773d584de01624b5896d1328a5 (commit) via be9b6948c117e936c5e1c7c8f0ad75c662846b71 (commit) via bf55fc65300668210defd040346ccb97572fbbf5 (commit) via 0e3bd63abac1bf727c4ee3e1bb19a51478d8f26e (commit) via dd7fa16627e6a20d07cd28f76d8e75b9f6859f2c (commit) via 3a50499e5622e8367b5c9c198c413e81fa16762d (commit) via 459e7811f623ac06f660a24ba7de0d59e19b8c2d (commit) via b1f76c17d2109a25df532f640649c40258e88c28 (commit) via b6119e4c53e0bcf363b0a4c94f0f2ad610311ad9 (commit) via 1153e77e8c6b91750247cf178b37d3220fa7021c (commit) via b5f803c02471fe84a46832837c260297a6a326b8 (commit) via ae2216f8dc8476759f74a590c9d5dcf71079d9cb (commit) via b6f9421c247b6719cf55d5c39035d1df94194ebe (commit) via cb995e236d1c599ac3d488c83b0ca5764ed0aeb5 (commit) via 3e8ef87fbbea3c9862f697fa1a29766f18617232 (commit) from eda2ab32ee7d512b37ce57b685d2a6ac017c9292 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit b0bf332e0049f220e14e9d9c41f96bb73e940e55 Author: Jan Kratochvil Date: Sat Dec 4 20:15:46 2010 +0100 fix commit 7b487c27c9877deb4606ed7ad83b7fd267ff434e Author: Jan Kratochvil Date: Sat Dec 4 20:02:17 2010 +0100 fix commit 0ab876c319e2864d54dd614f1a4c61cbdf4db9ed Author: Jan Kratochvil Date: Sat Dec 4 19:04:42 2010 +0100 removed commit 44f4b20ab28a35da447ae09ae7f21b2f6e5f1a31 Author: Jan Kratochvil Date: Sat Dec 4 18:59:09 2010 +0100 fix comments commit 9394a5f8e50bd8df377c4c1e03e59642815b01af Author: Jan Kratochvil Date: Sat Dec 4 06:22:09 2010 +0100 i386 fix commit cee9c029e8db69cd50ece11b65f1b51445bf1ded Author: Jan Kratochvil Date: Sat Dec 4 06:13:43 2010 +0100 simplify commit 15788a5805a502942b4be567eecb355859e6c179 Author: Jan Kratochvil Date: Sat Dec 4 06:12:05 2010 +0100 fix commit 5fcaa7c21f47764cbc4c62968aa10bb4ff98e1a5 Merge: 076cf01 2734020 Author: Jan Kratochvil Date: Sat Dec 4 02:05:59 2010 +0100 Merge branch 'archer-jankratochvil-watchpoint3' into multiinf commit 27340204311a2866f99ad03994bcb15e2c7cf31b Merge: eda2ab3 8e8cccf Author: Jan Kratochvil Date: Sat Dec 4 02:05:49 2010 +0100 Merge remote branch 'origin/master' into archer-jankratochvil-watchpoint3 commit 076cf01fa5d07806f03e26afebd181ad4189bf05 Author: Jan Kratochvil Date: Sat Dec 4 02:04:47 2010 +0100 multiinf ----------------------------------------------------------------------- Summary of changes: COPYING.NEWLIB | 15 + ChangeLog | 4 + bfd/ChangeLog | 40 +++ bfd/config.bfd | 4 +- bfd/elf32-arm.c | 304 +++++++++------------ bfd/pdp11.c | 4 +- bfd/version.h | 2 +- config/ChangeLog | 7 + config/mh-cygwin | 6 +- config/mh-mingw | 6 +- gdb/ChangeLog | 20 ++ gdb/NEWS | 6 + gdb/amd64-linux-nat.c | 97 ++++--- gdb/breakpoint.c | 30 +-- gdb/dwarf2read.c | 1 + gdb/i386-linux-nat.c | 97 ++++--- gdb/i386-nat.c | 215 ++++++++++----- gdb/i386-nat.h | 5 - gdb/linespec.c | 23 +- gdb/linux-nat.c | 37 --- gdb/ppc-linux-nat.c | 19 -- gdb/target.c | 24 -- gdb/target.h | 9 - gdb/testsuite/ChangeLog | 23 ++ gdb/testsuite/gdb.arch/system-gcore.exp | 21 +- gdb/testsuite/gdb.base/call-ar-st.exp | 50 ++--- gdb/testsuite/gdb.base/call-sc.exp | 30 +- gdb/testsuite/gdb.base/callfuncs.exp | 12 +- gdb/testsuite/gdb.base/finish.exp | 6 +- gdb/testsuite/gdb.base/funcargs.exp | 379 ++++++++++++-------------- gdb/testsuite/gdb.base/gcore.exp | 21 +- gdb/testsuite/gdb.base/page.exp | 3 +- gdb/testsuite/gdb.base/return.exp | 5 +- gdb/testsuite/gdb.base/return2.exp | 8 +- gdb/testsuite/gdb.base/sigaltstack.exp | 5 +- gdb/testsuite/gdb.base/siginfo.exp | 5 +- gdb/testsuite/gdb.base/sigstep.exp | 5 +- gdb/testsuite/gdb.base/trace-commands.exp | 18 +- gdb/testsuite/gdb.multi/watchpoint-multi.exp | 22 ++- gdb/testsuite/lib/gdb.exp | 13 +- gdb/valops.c | 25 +- gdb/version.in | 2 +- 42 files changed, 862 insertions(+), 766 deletions(-) First 500 lines of diff: diff --git a/COPYING.NEWLIB b/COPYING.NEWLIB index 59687b6..7f90c7e 100644 --- a/COPYING.NEWLIB +++ b/COPYING.NEWLIB @@ -862,3 +862,18 @@ http://www.ti.com/ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +(38) National Semiconductor (cr16-* and crx-* targets) + +Copyright (c) 2004 National Semiconductor Corporation + +The authors hereby grant permission to use, copy, modify, distribute, +and license this software and its documentation for any purpose, provided +that existing copyright notices are retained in all copies and that this +notice is included verbatim in any distributions. No written agreement, +license, or royalty fee is required for any of the authorized uses. +Modifications to this software may be copyrighted by their authors +and need not follow the licensing terms described here, provided that +the new terms are clearly indicated on the first page of each file where +they apply. + diff --git a/ChangeLog b/ChangeLog index 09dba95..8a49506 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2010-12-02 Jeff Johnston + + * COPYING.NEWLIB: Add National Semiconductor notice. + 2010-11-29 Andreas Schwab * configure.ac: Move comment to remove extra space in last argument diff --git a/bfd/ChangeLog b/bfd/ChangeLog index e8cf66b..20df60a 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,43 @@ +2010-12-02 Richard Sandiford + + * elf32-arm.c (elf32_arm_link_hash_table): Remove sgot, sgotplt, + srelgot, splt, srelplt. + (create_got_section, elf32_arm_link_hash_table_create): Don't set them. + (elf32_arm_create_dynamic_sections): Likewise. Use htab->root + fields instead. + (arm_type_of_stub): Use the root fields instead of the removed ones. + (cortex_a8_erratum_scan, elf32_arm_size_stubs): Likewise. + (bfd_elf32_arm_process_before_allocation): Likewise. + (elf32_arm_check_relocs, allocate_dynrelocs): Likewise. + (elf32_arm_size_dynamic_sections): Likewise. + (elf32_arm_output_arch_local_syms): Likewise. + (elf32_arm_final_link_relocate): Set sgot, splt and srelgot from the + htab fields instead of looking them up by name. Consistently use + these local variables instead of htab fields. + (elf32_arm_finish_dynamic_symbol): Likewise sgot, splt and srel. + Use srelbss instead of looking it up by name. + (elf32_arm_finish_dynamic_sections): Use sgotplt, splt and srelplt + instead of looking up the symbols by name. Use the root fields + instead of the removed ones. + +2010-12-02 Richard Sandiford + + * elf32-arm.c (elf32_arm_relocs_copied): Delete. + (elf32_arm_link_hash_entry): Replace relocs_copied with dyn_relocs. + (elf32_arm_link_hash_newfunc): Update accordingly. + (elf32_arm_copy_indirect_symbol, elf32_arm_gc_sweep_hook): Likewise. + (elf32_arm_check_relocs, allocate_dynrelocs): Likewise. + (elf32_arm_readonly_dynrelocs): Likewise. + (elf32_arm_size_dynamic_sections): Likewise. + +2010-12-02 Paul Koning + + * pdp11.c (aout_link_add_symbols): Ignore debug symbols. + +2010-11-30 Joel Sherrill + + * config.bfd: Add sparc64-rtems. + 2010-11-25 Alan Modra * po/es.po: Update. diff --git a/bfd/config.bfd b/bfd/config.bfd index f0a03e3..9b719d8 100644 --- a/bfd/config.bfd +++ b/bfd/config.bfd @@ -1432,7 +1432,7 @@ case "${targ}" in targ_selvecs="bfd_elf32_sparc_vec sparclinux_vec sunos_big_vec" want64=true ;; - sparc64-*-elf*) + sparc64-*-elf* | sparc64-*-rtems* ) targ_defvec=bfd_elf64_sparc_vec targ_selvecs=bfd_elf32_sparc_vec want64=true @@ -1441,7 +1441,7 @@ case "${targ}" in sparc*-*-coff*) targ_defvec=sparccoff_vec ;; - sparc*-*-rtems*) + sparc-*-rtems*) targ_defvec=bfd_elf32_sparc_vec targ_selvecs="sunos_big_vec sparccoff_vec" ;; diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c index ffe8f60..7c8eb68 100644 --- a/bfd/elf32-arm.c +++ b/bfd/elf32-arm.c @@ -2451,26 +2451,6 @@ elf32_arm_mkobject (bfd *abfd) ARM_ELF_DATA); } -/* The ARM linker needs to keep track of the number of relocs that it - decides to copy in check_relocs for each symbol. This is so that - it can discard PC relative relocs if it doesn't need them when - linking with -Bsymbolic. We store the information in a field - extending the regular ELF linker hash table. */ - -/* This structure keeps track of the number of relocs we have copied - for a given symbol. */ -struct elf32_arm_relocs_copied - { - /* Next section. */ - struct elf32_arm_relocs_copied * next; - /* A section in dynobj. */ - asection * section; - /* Number of relocs copied in this section. */ - bfd_size_type count; - /* Number of PC-relative relocs copied in this section. */ - bfd_size_type pc_count; - }; - #define elf32_arm_hash_entry(ent) ((struct elf32_arm_link_hash_entry *)(ent)) /* Arm ELF linker hash entry. */ @@ -2478,8 +2458,8 @@ struct elf32_arm_link_hash_entry { struct elf_link_hash_entry root; - /* Number of PC relative relocs copied for this symbol. */ - struct elf32_arm_relocs_copied * relocs_copied; + /* Track dynamic relocs copied for this symbol. */ + struct elf_dyn_relocs *dyn_relocs; /* We reference count Thumb references to a PLT entry separately, so that we can emit the Thumb trampoline only if needed. */ @@ -2615,11 +2595,6 @@ struct elf32_arm_link_hash_table int use_rel; /* Short-cuts to get to dynamic linker sections. */ - asection *sgot; - asection *sgotplt; - asection *srelgot; - asection *splt; - asection *srelplt; asection *sdynbss; asection *srelbss; @@ -2686,7 +2661,7 @@ elf32_arm_link_hash_newfunc (struct bfd_hash_entry * entry, table, string)); if (ret != NULL) { - ret->relocs_copied = NULL; + ret->dyn_relocs = NULL; ret->tls_type = GOT_UNKNOWN; ret->plt_thumb_refcount = 0; ret->plt_maybe_thumb_refcount = 0; @@ -2761,15 +2736,6 @@ create_got_section (bfd *dynobj, struct bfd_link_info *info) if (! _bfd_elf_create_got_section (dynobj, info)) return FALSE; - htab->sgot = bfd_get_section_by_name (dynobj, ".got"); - htab->sgotplt = bfd_get_section_by_name (dynobj, ".got.plt"); - if (!htab->sgot || !htab->sgotplt) - abort (); - - htab->srelgot = bfd_get_section_by_name (dynobj, - RELOC_SECTION (htab, ".got")); - if (htab->srelgot == NULL) - return FALSE; return TRUE; } @@ -2786,15 +2752,12 @@ elf32_arm_create_dynamic_sections (bfd *dynobj, struct bfd_link_info *info) if (htab == NULL) return FALSE; - if (!htab->sgot && !create_got_section (dynobj, info)) + if (!htab->root.sgot && !create_got_section (dynobj, info)) return FALSE; if (!_bfd_elf_create_dynamic_sections (dynobj, info)) return FALSE; - htab->splt = bfd_get_section_by_name (dynobj, ".plt"); - htab->srelplt = bfd_get_section_by_name (dynobj, - RELOC_SECTION (htab, ".plt")); htab->sdynbss = bfd_get_section_by_name (dynobj, ".dynbss"); if (!info->shared) htab->srelbss = bfd_get_section_by_name (dynobj, @@ -2820,8 +2783,8 @@ elf32_arm_create_dynamic_sections (bfd *dynobj, struct bfd_link_info *info) } } - if (!htab->splt - || !htab->srelplt + if (!htab->root.splt + || !htab->root.srelplt || !htab->sdynbss || (!info->shared && !htab->srelbss)) abort (); @@ -2841,21 +2804,21 @@ elf32_arm_copy_indirect_symbol (struct bfd_link_info *info, edir = (struct elf32_arm_link_hash_entry *) dir; eind = (struct elf32_arm_link_hash_entry *) ind; - if (eind->relocs_copied != NULL) + if (eind->dyn_relocs != NULL) { - if (edir->relocs_copied != NULL) + if (edir->dyn_relocs != NULL) { - struct elf32_arm_relocs_copied **pp; - struct elf32_arm_relocs_copied *p; + struct elf_dyn_relocs **pp; + struct elf_dyn_relocs *p; /* Add reloc counts against the indirect sym to the direct sym list. Merge any entries against the same section. */ - for (pp = &eind->relocs_copied; (p = *pp) != NULL; ) + for (pp = &eind->dyn_relocs; (p = *pp) != NULL; ) { - struct elf32_arm_relocs_copied *q; + struct elf_dyn_relocs *q; - for (q = edir->relocs_copied; q != NULL; q = q->next) - if (q->section == p->section) + for (q = edir->dyn_relocs; q != NULL; q = q->next) + if (q->sec == p->sec) { q->pc_count += p->pc_count; q->count += p->count; @@ -2865,11 +2828,11 @@ elf32_arm_copy_indirect_symbol (struct bfd_link_info *info, if (q == NULL) pp = &p->next; } - *pp = edir->relocs_copied; + *pp = edir->dyn_relocs; } - edir->relocs_copied = eind->relocs_copied; - eind->relocs_copied = NULL; + edir->dyn_relocs = eind->dyn_relocs; + eind->dyn_relocs = NULL; } if (ind->root.type == bfd_link_hash_indirect) @@ -2911,11 +2874,6 @@ elf32_arm_link_hash_table_create (bfd *abfd) return NULL; } - ret->sgot = NULL; - ret->sgotplt = NULL; - ret->srelgot = NULL; - ret->splt = NULL; - ret->srelplt = NULL; ret->sdynbss = NULL; ret->srelbss = NULL; ret->srelplt2 = NULL; @@ -3094,7 +3052,7 @@ arm_type_of_stub (struct bfd_link_info *info, r_type = ELF32_R_TYPE (rel->r_info); /* Keep a simpler condition, for the sake of clarity. */ - if (globals->splt != NULL + if (globals->root.splt != NULL && hash != NULL && hash->root.plt.offset != (bfd_vma) -1) { @@ -3109,8 +3067,8 @@ arm_type_of_stub (struct bfd_link_info *info, because it avoids spreading offset corrections in several places. */ - destination = (globals->splt->output_section->vma - + globals->splt->output_offset + destination = (globals->root.splt->output_section->vma + + globals->root.splt->output_offset + hash->root.plt.offset); st_type = STT_FUNC; } @@ -4132,7 +4090,7 @@ cortex_a8_erratum_scan (bfd *input_bfd, found->non_a8_stub = TRUE; /* Keep a simpler condition, for the sake of clarity. */ - if (htab->splt != NULL && found->hash != NULL + if (htab->root.splt != NULL && found->hash != NULL && found->hash->root.plt.offset != (bfd_vma) -1) use_plt = TRUE; @@ -4552,11 +4510,11 @@ elf32_arm_size_stubs (bfd *output_bfd, decide whether a branch stub is needed. */ if (globals != NULL - && globals->splt != NULL + && globals->root.splt != NULL && hash != NULL && hash->root.plt.offset != (bfd_vma) -1) { - sym_sec = globals->splt; + sym_sec = globals->root.splt; sym_value = hash->root.plt.offset; if (sym_sec->output_section != NULL) destination = (sym_value @@ -4579,11 +4537,11 @@ elf32_arm_size_stubs (bfd *output_bfd, elf32_arm_hash_table (info); if (globals != NULL - && globals->splt != NULL + && globals->root.splt != NULL && hash != NULL && hash->root.plt.offset != (bfd_vma) -1) { - sym_sec = globals->splt; + sym_sec = globals->root.splt; sym_value = hash->root.plt.offset; if (sym_sec->output_section != NULL) destination = (sym_value @@ -5574,7 +5532,7 @@ bfd_elf32_arm_process_before_allocation (bfd *abfd, /* If the call will go through a PLT entry then we do not need glue. */ - if (globals->splt != NULL && h->plt.offset != (bfd_vma) -1) + if (globals->root.splt != NULL && h->plt.offset != (bfd_vma) -1) continue; switch (r_type) @@ -6875,11 +6833,11 @@ elf32_arm_final_link_relocate (reloc_howto_type * howto, unsigned long r_type = howto->type; unsigned long r_symndx; bfd_byte * hit_data = contents + rel->r_offset; - bfd * dynobj = NULL; bfd_vma * local_got_offsets; asection * sgot = NULL; asection * splt = NULL; asection * sreloc = NULL; + asection * srelgot; bfd_vma addend; bfd_signed_vma signed_addend; struct elf32_arm_link_hash_table * globals; @@ -6908,12 +6866,9 @@ elf32_arm_final_link_relocate (reloc_howto_type * howto, if (bfd_get_start_address (output_bfd) != 0) elf_elfheader (output_bfd)->e_flags |= EF_ARM_HASENTRY; - dynobj = elf_hash_table (info)->dynobj; - if (dynobj) - { - sgot = bfd_get_section_by_name (dynobj, ".got"); - splt = bfd_get_section_by_name (dynobj, ".plt"); - } + sgot = globals->root.sgot; + splt = globals->root.splt; + srelgot = globals->root.srelgot; local_got_offsets = elf_local_got_offsets (input_bfd); r_symndx = ELF32_R_SYM (rel->r_info); @@ -7971,12 +7926,9 @@ elf32_arm_final_link_relocate (reloc_howto_type * howto, if (info->shared) { - asection * srelgot; Elf_Internal_Rela outrel; bfd_byte *loc; - srelgot = (bfd_get_section_by_name - (dynobj, RELOC_SECTION (globals, ".got"))); BFD_ASSERT (srelgot != NULL); outrel.r_addend = addend + value; @@ -8012,7 +7964,7 @@ elf32_arm_final_link_relocate (reloc_howto_type * howto, { bfd_vma off; - if (globals->sgot == NULL) + if (sgot == NULL) abort (); off = globals->tls_ldm_got.offset; @@ -8028,29 +7980,29 @@ elf32_arm_final_link_relocate (reloc_howto_type * howto, Elf_Internal_Rela outrel; bfd_byte *loc; - if (globals->srelgot == NULL) + if (srelgot == NULL) abort (); outrel.r_addend = 0; - outrel.r_offset = (globals->sgot->output_section->vma - + globals->sgot->output_offset + off); + outrel.r_offset = (sgot->output_section->vma + + sgot->output_offset + off); outrel.r_info = ELF32_R_INFO (0, R_ARM_TLS_DTPMOD32); if (globals->use_rel) bfd_put_32 (output_bfd, outrel.r_addend, - globals->sgot->contents + off); + sgot->contents + off); - loc = globals->srelgot->contents; - loc += globals->srelgot->reloc_count++ * RELOC_SIZE (globals); + loc = srelgot->contents; + loc += srelgot->reloc_count++ * RELOC_SIZE (globals); SWAP_RELOC_OUT (globals) (output_bfd, &outrel, loc); } else - bfd_put_32 (output_bfd, 1, globals->sgot->contents + off); + bfd_put_32 (output_bfd, 1, sgot->contents + off); globals->tls_ldm_got.offset |= 1; } - value = globals->sgot->output_section->vma + globals->sgot->output_offset + off + value = sgot->output_section->vma + sgot->output_offset + off - (input_section->output_section->vma + input_section->output_offset + rel->r_offset); return _bfd_final_link_relocate (howto, input_bfd, input_section, @@ -8065,7 +8017,7 @@ elf32_arm_final_link_relocate (reloc_howto_type * howto, int indx; char tls_type; - if (globals->sgot == NULL) + if (sgot == NULL) abort (); indx = 0; @@ -8113,10 +8065,10 @@ elf32_arm_final_link_relocate (reloc_howto_type * howto, || h->root.type != bfd_link_hash_undefweak)) { need_relocs = TRUE; - if (globals->srelgot == NULL) + if (srelgot == NULL) abort (); - loc = globals->srelgot->contents; - loc += globals->srelgot->reloc_count * RELOC_SIZE (globals); + loc = srelgot->contents; + loc += srelgot->reloc_count * RELOC_SIZE (globals); } if (tls_type & GOT_TLS_GD) @@ -8124,22 +8076,22 @@ elf32_arm_final_link_relocate (reloc_howto_type * howto, if (need_relocs) { outrel.r_addend = 0; - outrel.r_offset = (globals->sgot->output_section->vma - + globals->sgot->output_offset + outrel.r_offset = (sgot->output_section->vma + + sgot->output_offset + cur_off); outrel.r_info = ELF32_R_INFO (indx, R_ARM_TLS_DTPMOD32); if (globals->use_rel) bfd_put_32 (output_bfd, outrel.r_addend, - globals->sgot->contents + cur_off); + sgot->contents + cur_off); SWAP_RELOC_OUT (globals) (output_bfd, &outrel, loc); - globals->srelgot->reloc_count++; + srelgot->reloc_count++; loc += RELOC_SIZE (globals); if (indx == 0) bfd_put_32 (output_bfd, value - dtpoff_base (info), - globals->sgot->contents + cur_off + 4); + sgot->contents + cur_off + 4); else { outrel.r_addend = 0; @@ -8149,11 +8101,11 @@ elf32_arm_final_link_relocate (reloc_howto_type * howto, if (globals->use_rel) bfd_put_32 (output_bfd, outrel.r_addend, - globals->sgot->contents + cur_off + 4); + sgot->contents + cur_off + 4); SWAP_RELOC_OUT (globals) (output_bfd, &outrel, loc); - globals->srelgot->reloc_count++; + srelgot->reloc_count++; loc += RELOC_SIZE (globals); } } @@ -8165,9 +8117,9 @@ elf32_arm_final_link_relocate (reloc_howto_type * howto, symbol binding locally. Mark it as belonging to module 1, the executable. */ bfd_put_32 (output_bfd, 1, - globals->sgot->contents + cur_off); + sgot->contents + cur_off); bfd_put_32 (output_bfd, value - dtpoff_base (info), - globals->sgot->contents + cur_off + 4); + sgot->contents + cur_off + 4); } hooks/post-receive -- Repository for Project Archer.