From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 679 invoked by alias); 7 Jan 2011 07:32:35 -0000 Mailing-List: contact archer-commits-help@sourceware.org; run by ezmlm Sender: Precedence: bulk List-Post: List-Help: List-Subscribe: Received: (qmail 612 invoked by uid 9674); 7 Jan 2011 07:32:34 -0000 Date: Fri, 07 Jan 2011 07:32:00 -0000 Message-ID: <20110107073234.597.qmail@sourceware.org> From: jkratoch@sourceware.org To: archer-commits@sourceware.org Subject: [SCM] archer-jankratochvil-ifunc: Merge remote branch 'origin/master' into archer-jankratochvil-ifunc X-Git-Refname: refs/heads/archer-jankratochvil-ifunc X-Git-Reftype: branch X-Git-Oldrev: 1cd9c31c876bb85595665f59ef908fe279e091ce X-Git-Newrev: f181dffda2137e54aa98046f7c6bd6104311ed03 X-SW-Source: 2011-q1/txt/msg00017.txt.bz2 List-Id: The branch, archer-jankratochvil-ifunc has been updated via f181dffda2137e54aa98046f7c6bd6104311ed03 (commit) via ff3abfdd456fa07373e2c45e63fa1d1fde330689 (commit) via fc7aee6fd42face8453d4c9a6f5c2a7589fbf557 (commit) via 5936736ddc1d7d0ff03a2cb9cdcba14e05d8f058 (commit) via 390347e3af69c4e3b28f50ff079ad629e6ed86f3 (commit) via 6375164cac7df1b8bbdc44330e8dd84e91a36e1a (commit) via b09ef0963472ecefb3c48c4f6b854af3df39408d (commit) via 0d67ef8877f86c2cd1144e6e1e51c95806a09403 (commit) via f47b1885bb46d4a0a5963483c6cbcfbe4444a253 (commit) via 93df9f55772f9992866d94d3eda65e7c7d7ee39a (commit) via 9e9d3b19324834de25706adaa5e77e940042255d (commit) via 95eb7299a43691367d4234b44e256244f501f9dd (commit) via 38e689abe37e23dc10ae6b3d7eda10792fbe5cce (commit) via 10ca8357c723a3a0dff901b421d62297fe3d0185 (commit) via 6162f66a3168655f31475fe2a34750b13629b432 (commit) via ee7931dc2f112b223bd76bf31ba5bfc716a0a947 (commit) via 8bef39475287bdce64ba672333879627614a64c7 (commit) via d3a53b0f798666339edb89002087dbf3a222af09 (commit) via dc1dbdd748005d025bfed664141f94868b4608b9 (commit) via a1d4eea835dab8b8f372de80a9b9f1d47f4ddc87 (commit) via 968b19ffd222d8c5af49a1964b61ebc26f69f8c5 (commit) via f850d1e13721d2e41319ecf28d4f1fb252114a51 (commit) via 1be0d6417699867915c0b0efc15174baf1623863 (commit) via e22c5a3e2b53ba419113970be49407a4098e7ce9 (commit) via 73df4d26c29e68266770c0bf48f727bde62d4468 (commit) via a253ad6ac0478fb293d7005517b717732b88e726 (commit) via 9d777470f6b55b374c2e6761fc658078f3df0d69 (commit) via 8ab7ed746e8abce9d14aff83159939f01ccfc646 (commit) via d960d576b6bf7dc12a29a244df35fa4e7373dca4 (commit) via 1ba609a9c42f9cfeb111aec95b015c3f5eeafbc6 (commit) via 071892049d961a5b7694238d590074023177d54d (commit) via fe0e115731240592d9f2838759bc76db45d3e89e (commit) via 3bf6cbf8d09e90753e83f7a85a538710f365553a (commit) via e78704d5680d54c2c895e4a8f96e01e33e698813 (commit) via 7f416aff7d49595e8041fd7a2b48135b887601f7 (commit) via d6447a2d1ad08c3a3a25742339a464be0aadf8d7 (commit) via 91347ff709cbcd9f603ff0ad02016cfcd268ca40 (commit) via 8b40ee1f1f2f5f8855e99a21a933273b790b913b (commit) from 1cd9c31c876bb85595665f59ef908fe279e091ce (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit f181dffda2137e54aa98046f7c6bd6104311ed03 Merge: 1cd9c31 ff3abfd Author: Jan Kratochvil Date: Fri Jan 7 08:32:20 2011 +0100 Merge remote branch 'origin/master' into archer-jankratochvil-ifunc ----------------------------------------------------------------------- Summary of changes: bfd/ChangeLog | 24 + bfd/bfd-in2.h | 1 + bfd/elf-ifunc.c | 31 +- bfd/elf32-i386.c | 32 +- bfd/elf32-rx.c | 1 + bfd/elf64-x86-64.c | 33 +- bfd/libbfd.h | 1 + bfd/reloc.c | 2 + bfd/version.h | 2 +- gdb/ChangeLog | 256 + gdb/NEWS | 3 + gdb/ada-tasks.c | 2 +- gdb/addrmap.c | 3 +- gdb/arch-utils.c | 29 +- gdb/arch-utils.h | 10 +- gdb/ax-gdb.c | 50 +- gdb/ax-general.c | 16 +- gdb/bcache.c | 3 +- gdb/blockframe.c | 9 +- gdb/breakpoint.c | 170 +- gdb/buildsym.c | 12 +- gdb/c-lang.c | 3 +- gdb/c-typeprint.c | 10 +- gdb/charset.c | 25 +- gdb/cli/cli-cmds.c | 32 +- gdb/cli/cli-decode.c | 8 +- gdb/cli/cli-dump.c | 28 +- gdb/cli/cli-logging.c | 18 +- gdb/cli/cli-script.c | 9 +- gdb/cli/cli-setshow.c | 3 +- gdb/coffread.c | 18 +- gdb/command.h | 6 +- gdb/common/signals.c | 6 +- gdb/configure.ac | 4 +- gdb/copyright.py | 608 +++ gdb/copyright.sh | 11 +- gdb/corelow.c | 6 +- gdb/cp-abi.c | 9 +- gdb/cp-namespace.c | 3 +- gdb/cp-support.c | 3 +- gdb/dbug-rom.c | 6 +- gdb/dbxread.c | 43 +- gdb/defs.h | 33 +- gdb/dfp.c | 6 +- gdb/dfp.h | 3 +- gdb/dictionary.c | 3 +- gdb/disasm.c | 3 +- gdb/doc/ChangeLog | 20 + gdb/doc/agentexpr.texi | 4 +- gdb/doc/all-cfg.texi | 2 +- gdb/doc/annotate.texinfo | 2 +- gdb/doc/gdb.texinfo | 43 +- gdb/doc/gdbint.texinfo | 2 +- gdb/doc/observer.texi | 4 +- gdb/doc/refcard.tex | 4 +- gdb/doc/stabs.texinfo | 2 +- gdb/doublest.c | 13 +- gdb/dwarf2-frame.c | 36 +- gdb/dwarf2expr.c | 12 +- gdb/dwarf2loc.c | 38 +- gdb/dwarf2read.c | 239 +- gdb/elfread.c | 78 +- gdb/eval.c | 118 +- gdb/event-loop.c | 21 +- gdb/event-loop.h | 2 +- gdb/exceptions.h | 10 +- gdb/exec.c | 15 +- gdb/expprint.c | 3 +- gdb/expression.h | 37 +- gdb/f-lang.c | 15 +- gdb/f-valprint.c | 13 +- gdb/findcmd.c | 7 +- gdb/frame-base.c | 3 +- gdb/frame-unwind.c | 9 +- gdb/frame-unwind.h | 4 +- gdb/frame.c | 31 +- gdb/frame.h | 8 +- gdb/gcore.c | 3 +- gdb/gdb-stabs.h | 5 +- gdb/gdb.1 | 2 +- gdb/gdb_assert.h | 4 +- gdb/gdb_dirent.h | 2 +- gdb/gdb_obstack.h | 7 +- gdb/gdbcore.h | 6 +- gdb/gdbserver/ChangeLog | 25 + gdb/gdbserver/configure.ac | 2 +- gdb/gdbserver/gdbreplay.c | 11 +- gdb/gdbserver/gdbserver.1 | 2 +- gdb/gdbserver/linux-low.c | 28 +- gdb/gdbserver/linux-ppc-low.c | 3 +- gdb/gdbserver/linux-s390-low.c | 15 +- gdb/gdbserver/linux-sparc-low.c | 30 +- gdb/gdbserver/linux-x86-low.c | 8 +- gdb/gdbserver/linux-xtensa-low.c | 3 +- gdb/gdbserver/mem-break.c | 3 +- gdb/gdbserver/nto-low.c | 3 +- gdb/gdbserver/regcache.h | 3 +- gdb/gdbserver/remote-utils.c | 10 +- gdb/gdbserver/server.c | 15 +- gdb/gdbserver/server.h | 9 +- gdb/gdbserver/thread-db.c | 3 +- gdb/gdbserver/tracepoint.c | 44 +- gdb/gdbserver/utils.c | 3 +- gdb/gdbserver/win32-low.h | 6 +- gdb/gdbtypes.c | 41 +- gdb/gdbtypes.h | 22 +- gdb/inf-ttrace.c | 13 +- gdb/infcall.c | 118 +- gdb/infcmd.c | 90 +- gdb/inflow.c | 6 +- gdb/infrun.c | 174 +- gdb/inline-frame.c | 4 +- gdb/jit.c | 46 +- gdb/jit.h | 2 +- gdb/language.c | 78 +- gdb/language.h | 5 +- gdb/libunwind-frame.c | 22 +- gdb/libunwind-frame.h | 3 +- gdb/linespec.c | 59 +- gdb/linux-nat.c | 160 +- gdb/linux-nat.h | 3 +- gdb/linux-thread-db.c | 9 +- gdb/machoread.c | 25 +- gdb/macroexp.c | 3 +- gdb/macrotab.c | 7 +- gdb/main.c | 41 +- gdb/maint.c | 30 +- gdb/mdebugread.c | 398 +- gdb/memattr.c | 11 +- gdb/mi/mi-cmd-break.c | 3 +- gdb/mi/mi-cmd-disas.c | 11 +- gdb/mi/mi-cmd-stack.c | 6 +- gdb/mi/mi-cmd-var.c | 18 +- gdb/mi/mi-cmds.c | 15 +- gdb/mi/mi-common.h | 5 +- gdb/mi/mi-console.c | 3 +- gdb/mi/mi-interp.c | 17 +- gdb/mi/mi-main.c | 42 +- gdb/minsyms.c | 4 +- gdb/monitor.c | 67 +- gdb/monitor.h | 14 +- gdb/objfiles.c | 3 +- gdb/objfiles.h | 24 +- gdb/osabi.c | 17 +- gdb/osf-share/cma_attr.h | 9 +- gdb/osf-share/cma_deb_core.h | 38 +- gdb/osf-share/cma_debug_client.h | 12 +- gdb/osf-share/cma_handle.h | 15 +- gdb/osf-share/cma_mutex.h | 6 +- gdb/osf-share/cma_stack_int.h | 6 +- gdb/osf-share/cma_tcb_defs.h | 32 +- gdb/p-typeprint.c | 42 +- gdb/p-valprint.c | 57 +- gdb/parse.c | 21 +- gdb/printcmd.c | 23 +- gdb/proc-events.c | 3 +- gdb/procfs.c | 27 +- gdb/progspace.c | 7 +- gdb/progspace.h | 3 +- gdb/psympriv.h | 3 +- gdb/psymtab.c | 24 +- gdb/python/py-auto-load.c | 3 +- gdb/python/py-breakpoint.c | 5 +- gdb/python/py-cmd.c | 9 +- gdb/python/py-frame.c | 49 +- gdb/python/py-objfile.c | 3 +- gdb/python/py-param.c | 3 +- gdb/python/py-progspace.c | 3 +- gdb/python/py-symbol.c | 6 +- gdb/python/py-value.c | 15 +- gdb/python/python-internal.h | 4 +- gdb/python/python.c | 9 +- gdb/record.c | 71 +- gdb/regcache.c | 42 +- gdb/regcache.h | 7 +- gdb/remote-fileio.c | 19 +- gdb/remote.c | 128 +- gdb/ser-mingw.c | 6 +- gdb/ser-tcp.c | 5 +- gdb/ser-unix.c | 30 +- gdb/serial.c | 13 +- gdb/serial.h | 11 +- gdb/solib-frv.c | 36 +- gdb/solib-irix.c | 6 +- gdb/solib-osf.c | 3 +- gdb/solib-pa64.c | 9 +- gdb/solib-som.c | 36 +- gdb/solib-sunos.c | 3 +- gdb/solib-svr4.c | 26 +- gdb/solib-target.c | 6 +- gdb/solib.c | 38 +- gdb/somread.c | 17 +- gdb/source.c | 20 +- gdb/stabsread.c | 88 +- gdb/stabsread.h | 5 +- gdb/stack.c | 26 +- gdb/stack.h | 2 +- gdb/symfile-mem.c | 22 +- gdb/symfile.c | 58 +- gdb/symfile.h | 9 +- gdb/symmisc.c | 23 +- gdb/symtab.c | 56 +- gdb/symtab.h | 9 +- gdb/target-descriptions.c | 10 +- gdb/target-memory.c | 6 +- gdb/target.c | 84 +- gdb/target.h | 17 +- gdb/terminal.h | 3 +- gdb/testsuite/ChangeLog | 72 + gdb/testsuite/configure | 4 +- gdb/testsuite/configure.ac | 2 +- gdb/testsuite/gdb.ada/array_bounds.exp | 5 +- gdb/testsuite/gdb.ada/array_return.exp | 5 +- gdb/testsuite/gdb.ada/array_subscript_addr.exp | 5 +- gdb/testsuite/gdb.ada/arrayidx.exp | 5 +- gdb/testsuite/gdb.ada/arrayparam.exp | 5 +- gdb/testsuite/gdb.ada/arrayptr.exp | 5 +- gdb/testsuite/gdb.ada/atomic_enum.exp | 5 +- gdb/testsuite/gdb.ada/call_pn.exp | 5 +- gdb/testsuite/gdb.ada/catch_ex.exp | 5 +- gdb/testsuite/gdb.ada/char_param.exp | 5 +- gdb/testsuite/gdb.ada/complete.exp | 5 +- gdb/testsuite/gdb.ada/complete/foo.adb | 15 + gdb/testsuite/gdb.ada/complete/pck.adb | 15 + gdb/testsuite/gdb.ada/complete/pck.ads | 15 + gdb/testsuite/gdb.ada/exec_changed.exp | 7 + gdb/testsuite/gdb.ada/exprs.exp | 5 +- gdb/testsuite/gdb.ada/fixed_cmp.exp | 5 +- gdb/testsuite/gdb.ada/fixed_points.exp | 5 +- gdb/testsuite/gdb.ada/formatted_ref.exp | 5 +- gdb/testsuite/gdb.ada/frame_args.exp | 5 +- gdb/testsuite/gdb.ada/fun_addr.exp | 5 +- gdb/testsuite/gdb.ada/fun_in_declare.exp | 5 +- gdb/testsuite/gdb.ada/funcall_param.exp | 5 +- gdb/testsuite/gdb.ada/homonym.exp | 5 +- gdb/testsuite/gdb.ada/int_deref.exp | 5 +- gdb/testsuite/gdb.ada/interface.exp | 5 +- gdb/testsuite/gdb.ada/lang_switch.exp | 5 +- gdb/testsuite/gdb.ada/mod_from_name.exp | 5 +- gdb/testsuite/gdb.ada/nested.exp | 5 +- gdb/testsuite/gdb.ada/null_array.exp | 5 +- gdb/testsuite/gdb.ada/null_record.exp | 15 +- gdb/testsuite/gdb.ada/null_record/null_record.adb | 2 +- gdb/testsuite/gdb.ada/packed_array.exp | 5 +- gdb/testsuite/gdb.ada/packed_tagged.exp | 5 +- gdb/testsuite/gdb.ada/print_chars.exp | 5 +- gdb/testsuite/gdb.ada/print_chars/foo.adb | 15 + gdb/testsuite/gdb.ada/print_pc.exp | 15 +- gdb/testsuite/gdb.ada/ptype_field.exp | 5 +- gdb/testsuite/gdb.ada/ptype_tagged_param.exp | 5 +- gdb/testsuite/gdb.ada/rec_return.exp | 5 +- gdb/testsuite/gdb.ada/ref_param.exp | 5 +- gdb/testsuite/gdb.ada/ref_tick_size.exp | 5 +- gdb/testsuite/gdb.ada/start.exp | 12 +- gdb/testsuite/gdb.ada/start/dummy.adb | 2 +- gdb/testsuite/gdb.ada/str_ref_cmp.exp | 5 +- gdb/testsuite/gdb.ada/sym_print_name.exp | 5 +- gdb/testsuite/gdb.ada/taft_type.exp | 5 +- gdb/testsuite/gdb.ada/tagged.exp | 5 +- gdb/testsuite/gdb.ada/tasks.exp | 5 +- gdb/testsuite/gdb.ada/tick_last_segv.exp | 5 +- gdb/testsuite/gdb.ada/type_coercion.exp | 5 +- gdb/testsuite/gdb.ada/uninitialized_vars.exp | 15 +- gdb/testsuite/gdb.ada/uninitialized_vars/parse.adb | 2 +- .../gdb.ada/variant_record_packed_array.exp | 5 +- gdb/testsuite/gdb.ada/watch_arg.exp | 5 +- gdb/testsuite/gdb.arch/gdb1291.s | 2 +- gdb/testsuite/gdb.arch/gdb1431.s | 2 +- gdb/testsuite/gdb.base/langs1.f | 15 + gdb/testsuite/gdb.fortran/array-element.f | 2 +- gdb/testsuite/gdb.fortran/complex.f | 2 +- gdb/testsuite/gdb.fortran/derived-type.f90 | 2 +- gdb/testsuite/gdb.fortran/library-module-lib.f90 | 2 +- gdb/testsuite/gdb.fortran/library-module-main.f90 | 2 +- gdb/testsuite/gdb.fortran/logical.f90 | 2 +- gdb/testsuite/gdb.fortran/module.f90 | 2 +- gdb/testsuite/gdb.fortran/subarray.f | 2 +- gdb/testsuite/gdb.mi/array.f | 2 +- gdb/testsuite/gdb.python/py-frame.exp | 7 + gdb/thread.c | 11 +- gdb/top.c | 48 +- gdb/tracepoint.c | 89 +- gdb/tracepoint.h | 6 +- gdb/tui/tui-data.c | 15 +- gdb/tui/tui-disasm.c | 16 +- gdb/tui/tui-hooks.c | 6 +- gdb/tui/tui-io.c | 6 +- gdb/tui/tui-layout.c | 10 +- gdb/tui/tui-regs.c | 21 +- gdb/tui/tui-source.c | 32 +- gdb/tui/tui-stack.c | 23 +- gdb/tui/tui-win.c | 34 +- gdb/tui/tui-windata.c | 5 +- gdb/tui/tui-winsource.c | 34 +- gdb/ui-file.c | 2 +- gdb/ui-file.h | 60 +- gdb/ui-out.h | 4 +- gdb/user-regs.c | 4 +- gdb/user-regs.h | 3 +- gdb/utils.c | 92 +- gdb/valarith.c | 18 +- gdb/valops.c | 97 +- gdb/valprint.c | 63 +- gdb/valprint.h | 2 +- gdb/value.c | 30 +- gdb/varobj.c | 57 +- gdb/varobj.h | 5 +- gdb/vec.h | 3 +- gdb/version.in | 2 +- gdb/xcoffread.c | 193 +- gdb/xcoffsolib.c | 7 +- gdb/xcoffsolib.h | 6 +- gdb/xml-syscall.c | 15 +- gdb/xml-tdesc.c | 12 +- opcodes/ChangeLog | 44 + opcodes/arm-dis.c | 2 +- opcodes/i386-dis.c | 94 +- opcodes/i386-gen.c | 3 + opcodes/i386-init.h | 137 +- opcodes/i386-opc.h | 3 + opcodes/i386-opc.tbl | 9 + opcodes/i386-tbl.h | 5036 ++++++++++---------- sim/.gitignore | 1 + sim/ChangeLog | 4 + sim/common/ChangeLog | 8 + sim/common/run.1 | 2 +- sim/common/sim-load.c | 2 +- sim/ppc/ChangeLog | 4 + sim/ppc/psim.texinfo | 4 +- sim/testsuite/sim/mips/ChangeLog | 8 + sim/testsuite/sim/mips/mips32-dsp.s | 2 +- sim/testsuite/sim/mips/testutils.inc | 4 +- sim/testsuite/sim/mips/utils-dsp.inc | 4 +- sim/testsuite/sim/mips/utils-fpu.inc | 4 +- sim/testsuite/sim/mips/utils-mdmx.inc | 4 +- 335 files changed, 7552 insertions(+), 4978 deletions(-) create mode 100644 gdb/copyright.py First 500 lines of diff: diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 0369051..c2c0157 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,27 @@ +2011-01-06 H.J. Lu + + * elf-ifunc.c (_bfd_elf_allocate_ifunc_dyn_relocs): Optimized. + +2011-01-06 H.J. Lu + + PR ld/12366 + PR ld/12371 + * elf-ifunc.c (_bfd_elf_allocate_ifunc_dyn_relocs): Properly + handle symbols marked with regular reference, but not non-GOT + reference when building shared library. + + * elf32-i386.c (elf_i386_gc_sweep_hook): Properly handle + local and global STT_GNU_IFUNC symols when building shared + library. + * elf64-x86-64.c (elf_x86_64_gc_sweep_hook): Likewise. + +2011-01-05 DJ Delorie + + * reloc.c: Add BFD_RELOC_RX_OP_NEG. + * libbfd.h: Regenerate. + * bfd-in2.h: Regenerate. + * elf32-rx.c: Add it to the list, corresponding to R_RX_OPneg. + 2011-01-03 H.J. Lu * cpu-i386.c (bfd_i386_compatible): New. diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index e75eb0d..8531f8d 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -3991,6 +3991,7 @@ instructions */ BFD_RELOC_RX_GPRELL, BFD_RELOC_RX_SYM, BFD_RELOC_RX_OP_SUBTRACT, + BFD_RELOC_RX_OP_NEG, BFD_RELOC_RX_ABS8, BFD_RELOC_RX_ABS16, BFD_RELOC_RX_ABS16_REV, diff --git a/bfd/elf-ifunc.c b/bfd/elf-ifunc.c index 760fc26..81429b8 100644 --- a/bfd/elf-ifunc.c +++ b/bfd/elf-ifunc.c @@ -190,6 +190,20 @@ _bfd_elf_allocate_ifunc_dyn_relocs (struct bfd_link_info *info, /* Support garbage collection against STT_GNU_IFUNC symbols. */ if (h->plt.refcount <= 0 && h->got.refcount <= 0) { + /* When building shared library, we need to handle the case + where it is marked with regular reference, but not non-GOT + reference. It may happen if we didn't see STT_GNU_IFUNC + symbol at the time when checking relocations. */ + if (info->shared + && !h->non_got_ref + && h->ref_regular) + for (p = *head; p != NULL; p = p->next) + if (p->count) + { + h->non_got_ref = 1; + goto keep; + } + h->got = htab->init_got_offset; h->plt = htab->init_plt_offset; *head = NULL; @@ -209,6 +223,7 @@ _bfd_elf_allocate_ifunc_dyn_relocs (struct bfd_link_info *info, return TRUE; } +keep: bed = get_elf_backend_data (info->output_bfd); if (bed->rela_plts_and_copies_p) sizeof_reloc = bed->s->sizeof_rela; @@ -258,10 +273,20 @@ _bfd_elf_allocate_ifunc_dyn_relocs (struct bfd_link_info *info, *head = NULL; /* Finally, allocate space. */ - for (p = *head; p != NULL; p = p->next) - htab->irelifunc->size += p->count * sizeof_reloc; + p = *head; + if (p != NULL) + { + bfd_size_type count = 0; + do + { + count += p->count; + p = p->next; + } + while (p != NULL); + htab->irelifunc->size += count * sizeof_reloc; + } - /* For STT_GNU_IFUNC symbol, .got.plt has the real function addres + /* For STT_GNU_IFUNC symbol, .got.plt has the real function address and .got has the PLT entry adddress. We will load the GOT entry with the PLT entry in finish_dynamic_symbol if it is used. For branch, it uses .got.plt. For symbol value, diff --git a/bfd/elf32-i386.c b/bfd/elf32-i386.c index ae749c6..e9b3933 100644 --- a/bfd/elf32-i386.c +++ b/bfd/elf32-i386.c @@ -1807,23 +1807,10 @@ elf_i386_gc_sweep_hook (bfd *abfd, r_symndx = ELF32_R_SYM (rel->r_info); if (r_symndx >= symtab_hdr->sh_info) { - struct elf_i386_link_hash_entry *eh; - struct elf_dyn_relocs **pp; - struct elf_dyn_relocs *p; - h = sym_hashes[r_symndx - symtab_hdr->sh_info]; while (h->root.type == bfd_link_hash_indirect || h->root.type == bfd_link_hash_warning) h = (struct elf_link_hash_entry *) h->root.u.i.link; - eh = (struct elf_i386_link_hash_entry *) h; - - for (pp = &eh->dyn_relocs; (p = *pp) != NULL; pp = &p->next) - if (p->sec == sec) - { - /* Everything must go for SEC. */ - *pp = p->next; - break; - } } else { @@ -1843,6 +1830,22 @@ elf_i386_gc_sweep_hook (bfd *abfd, } } + if (h) + { + struct elf_i386_link_hash_entry *eh; + struct elf_dyn_relocs **pp; + struct elf_dyn_relocs *p; + + eh = (struct elf_i386_link_hash_entry *) h; + for (pp = &eh->dyn_relocs; (p = *pp) != NULL; pp = &p->next) + if (p->sec == sec) + { + /* Everything must go for SEC. */ + *pp = p->next; + break; + } + } + r_type = ELF32_R_TYPE (rel->r_info); if (! elf_i386_tls_transition (info, abfd, sec, NULL, symtab_hdr, sym_hashes, @@ -1883,7 +1886,8 @@ elf_i386_gc_sweep_hook (bfd *abfd, case R_386_32: case R_386_PC32: - if (info->shared) + if (info->shared + && (h == NULL || h->type != STT_GNU_IFUNC)) break; /* Fall through */ diff --git a/bfd/elf32-rx.c b/bfd/elf32-rx.c index ac587ef..7855d5e 100644 --- a/bfd/elf32-rx.c +++ b/bfd/elf32-rx.c @@ -248,6 +248,7 @@ static const struct rx_reloc_map rx_reloc_map [] = { BFD_RELOC_RX_RELAX, R_RX_RH_RELAX }, { BFD_RELOC_RX_SYM, R_RX_SYM }, { BFD_RELOC_RX_OP_SUBTRACT, R_RX_OPsub }, + { BFD_RELOC_RX_OP_NEG, R_RX_OPneg }, { BFD_RELOC_RX_ABS8, R_RX_ABS8 }, { BFD_RELOC_RX_ABS16, R_RX_ABS16 }, { BFD_RELOC_RX_ABS16_REV, R_RX_ABS16_REV }, diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c index 3dd16ba..ceb1a0a 100644 --- a/bfd/elf64-x86-64.c +++ b/bfd/elf64-x86-64.c @@ -1684,23 +1684,10 @@ elf_x86_64_gc_sweep_hook (bfd *abfd, struct bfd_link_info *info, r_symndx = htab->r_sym (rel->r_info); if (r_symndx >= symtab_hdr->sh_info) { - struct elf_x86_64_link_hash_entry *eh; - struct elf_dyn_relocs **pp; - struct elf_dyn_relocs *p; - h = sym_hashes[r_symndx - symtab_hdr->sh_info]; while (h->root.type == bfd_link_hash_indirect || h->root.type == bfd_link_hash_warning) h = (struct elf_link_hash_entry *) h->root.u.i.link; - eh = (struct elf_x86_64_link_hash_entry *) h; - - for (pp = &eh->dyn_relocs; (p = *pp) != NULL; pp = &p->next) - if (p->sec == sec) - { - /* Everything must go for SEC. */ - *pp = p->next; - break; - } } else { @@ -1720,6 +1707,23 @@ elf_x86_64_gc_sweep_hook (bfd *abfd, struct bfd_link_info *info, } } + if (h) + { + struct elf_x86_64_link_hash_entry *eh; + struct elf_dyn_relocs **pp; + struct elf_dyn_relocs *p; + + eh = (struct elf_x86_64_link_hash_entry *) h; + + for (pp = &eh->dyn_relocs; (p = *pp) != NULL; pp = &p->next) + if (p->sec == sec) + { + /* Everything must go for SEC. */ + *pp = p->next; + break; + } + } + r_type = ELF32_R_TYPE (rel->r_info); if (! elf_x86_64_tls_transition (info, abfd, sec, NULL, symtab_hdr, sym_hashes, @@ -1771,7 +1775,8 @@ elf_x86_64_gc_sweep_hook (bfd *abfd, struct bfd_link_info *info, case R_X86_64_PC16: case R_X86_64_PC32: case R_X86_64_PC64: - if (info->shared) + if (info->shared + && (h == NULL || h->type != STT_GNU_IFUNC)) break; /* Fall thru */ diff --git a/bfd/libbfd.h b/bfd/libbfd.h index 5687082..1cf63ce 100644 --- a/bfd/libbfd.h +++ b/bfd/libbfd.h @@ -1800,6 +1800,7 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@", "BFD_RELOC_RX_GPRELL", "BFD_RELOC_RX_SYM", "BFD_RELOC_RX_OP_SUBTRACT", + "BFD_RELOC_RX_OP_NEG", "BFD_RELOC_RX_ABS8", "BFD_RELOC_RX_ABS16", "BFD_RELOC_RX_ABS16_REV", diff --git a/bfd/reloc.c b/bfd/reloc.c index 6d4eb85..30919f2 100644 --- a/bfd/reloc.c +++ b/bfd/reloc.c @@ -4258,6 +4258,8 @@ ENUMX ENUMX BFD_RELOC_RX_OP_SUBTRACT ENUMX + BFD_RELOC_RX_OP_NEG +ENUMX BFD_RELOC_RX_ABS8 ENUMX BFD_RELOC_RX_ABS16 diff --git a/bfd/version.h b/bfd/version.h index e76446a..0802422 100644 --- a/bfd/version.h +++ b/bfd/version.h @@ -1,4 +1,4 @@ -#define BFD_VERSION_DATE 20110104 +#define BFD_VERSION_DATE 20110107 #define BFD_VERSION @bfd_version@ #define BFD_VERSION_STRING @bfd_version_package@ @bfd_version_string@ #define REPORT_BUGS_TO @report_bugs_to@ diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 586d12e..b1edadf 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,259 @@ +2011-01-06 Tom Tromey + + PR python/12367: + * NEWS: Add item. + * python/python.c (GdbMethods): Add "newest_frame" method. + * python/python-internal.h (gdbpy_newest_frame): Declare. + * python/py-frame.c (gdbpy_newest_frame): New function. + +2010-01-06 Paul Pluzhnikov + + * jit.h (struct jit_code_entry): use ULONGEST for symfile_size. + * jit.c (jit_debug): New variable. + (show_jit_debug): New function. + (struct target_buffer): Use ULONGEST. + (bfd_open_from_target_memory): Likewise. + (jit_register_code, jit_inferior_init): Add debug output. + (_initialize_jit): Register "debug jit" command. + +2011-01-06 Tom Tromey + + * frame.h (enum frame_type) : Fix comment. + * python/py-frame.c (gdbpy_initialize_frames): Add INLINE_FRAME + and ARCH_FRAME. + +2011-01-06 Tom Tromey + + * python/py-frame.c (frapy_block): Use get_frame_block. + +2011-01-06 Joel Brobecker + + Do not stop on SIGPRIO signals by default + * infrun.c (_initialize_infrun): Unset signal_stop and + signal_print for TARGET_SIGNAL_PRIO. + +2011-01-06 Joel Brobecker + + * ada-tasks.c: Fix style violation in comment. + +2011-01-06 Joel Brobecker + + * linespec.c (decode_compound, find_method): Remove trailing \n + at end of error string. + * solib-irix.c (irix_current_sos): Likewise. + * varobj.c (uninstall_variable): Likewise. + +2011-01-06 Joel Brobecker + + * copyright.py: New script. + * copyright.sh (byhand): Add *.ads, *.adb, *.gpr and *.inc. + Launch emacs without exec'ing. Call copyright.py afterwards. + +2011-01-05 Michael Snyder + + * addrmap.c: Shorten lines of >= 80 columns. + * arch-utils.c: Ditto. + * arch-utils.h: Ditto. + * ax-gdb.c: Ditto. + * ax-general.c: Ditto. + * bcache.c: Ditto. + * blockframe.c: Ditto. + * breakpoint.c: Ditto. + * buildsym.c: Ditto. + * c-lang.c: Ditto. + * c-typeprint.c: Ditto. + * charset.c: Ditto. + * coffread.c: Ditto. + * command.h: Ditto. + * corelow.c: Ditto. + * cp-abi.c: Ditto. + * cp-namespace.c: Ditto. + * cp-support.c: Ditto. + * dbug-rom.c: Ditto. + * dbxread.c: Ditto. + * defs.h: Ditto. + * dfp.c: Ditto. + * dfp.h: Ditto. + * dictionary.c: Ditto. + * disasm.c: Ditto. + * doublest.c: Ditto. + * dwarf2-frame.c: Ditto. + * dwarf2expr.c: Ditto. + * dwarf2loc.c: Ditto. + * dwarf2read.c: Ditto. + * elfread.c: Ditto. + * eval.c: Ditto. + * event-loop.c: Ditto. + * event-loop.h: Ditto. + * exceptions.h: Ditto. + * exec.c: Ditto. + * expprint.c: Ditto. + * expression.h: Ditto. + * f-lang.c: Ditto. + * f-valprint.c: Ditto. + * findcmd.c: Ditto. + * frame-base.c: Ditto. + * frame-unwind.c: Ditto. + * frame-unwind.h: Ditto. + * frame.c: Ditto. + * frame.h: Ditto. + * gcore.c: Ditto. + * gdb-stabs.h: Ditto. + * gdb_assert.h: Ditto. + * gdb_dirent.h: Ditto. + * gdb_obstack.h: Ditto. + * gdbcore.h: Ditto. + * gdbtypes.c: Ditto. + * gdbtypes.h: Ditto. + * inf-ttrace.c: Ditto. + * infcall.c: Ditto. + * infcmd.c: Ditto. + * inflow.c: Ditto. + * infrun.c: Ditto. + * inline-frame.h: Ditto. + * language.c: Ditto. + * language.h: Ditto. + * libunwind-frame.c: Ditto. + * libunwind-frame.h: Ditto. + * linespec.c: Ditto. + * linux-nat.c: Ditto. + * linux-nat.h: Ditto. + * linux-thread-db.c: Ditto. + * machoread.c: Ditto. + * macroexp.c: Ditto. + * macrotab.c: Ditto. + * main.c: Ditto. + * maint.c: Ditto. + * mdebugread.c: Ditto. + * memattr.c: Ditto. + * minsyms.c: Ditto. + * monitor.c: Ditto. + * monitor.h: Ditto. + * objfiles.c: Ditto. + * objfiles.h: Ditto. + * osabi.c: Ditto. + * p-typeprint.c: Ditto. + * p-valprint.c: Ditto. + * parse.c: Ditto. + * printcmd.c: Ditto. + * proc-events.c: Ditto. + * procfs.c: Ditto. + * progspace.c: Ditto. + * progspace.h: Ditto. + * psympriv.h: Ditto. + * psymtab.c: Ditto. + * record.c: Ditto. + * regcache.c: Ditto. + * regcache.h: Ditto. + * remote-fileio.c: Ditto. + * remote.c: Ditto. + * ser-mingw.c: Ditto. + * ser-tcp.c: Ditto. + * ser-unix.c: Ditto. + * serial.c: Ditto. + * serial.h: Ditto. + * solib-frv.c: Ditto. + * solib-irix.c: Ditto. + * solib-osf.c: Ditto. + * solib-pa64.c: Ditto. + * solib-som.c: Ditto. + * solib-sunos.c: Ditto. + * solib-svr4.c: Ditto. + * solib-target.c: Ditto. + * solib.c: Ditto. + * somread.c: Ditto. + * source.c: Ditto. + * stabsread.c: Ditto. + * stabsread.c: Ditto. + * stack.c: Ditto. + * stack.h: Ditto. + * symfile-mem.c: Ditto. + * symfile.c: Ditto. + * symfile.h: Ditto. + * symmisc.c: Ditto. + * symtab.c: Ditto. + * symtab.h: Ditto. + * target-descriptions.c: Ditto. + * target-memory.c: Ditto. + * target.c: Ditto. + * target.h: Ditto. + * terminal.h: Ditto. + * thread.c: Ditto. + * top.c: Ditto. + * tracepoint.c: Ditto. + * tracepoint.h: Ditto. + * ui-file.c: Ditto. + * ui-file.h: Ditto. + * ui-out.h: Ditto. + * user-regs.c: Ditto. + * user-regs.h: Ditto. + * utils.c: Ditto. + * valarith.c: Ditto. + * valops.c: Ditto. + * valprint.c: Ditto. + * valprint.h: Ditto. + * value.c: Ditto. + * varobj.c: Ditto. + * varobj.h: Ditto. + * vec.h: Ditto. + * xcoffread.c: Ditto. + * xcoffsolib.c: Ditto. + * xcoffsolib.h: Ditto. + * xml-syscall.c: Ditto. + * xml-tdesc.c: Ditto. + +2011-01-05 Michael Snyder + + * cli/cli-cmds.c: Shorten lines of >= 80 columns. + * cli/cli-decode.c: Ditto. + * cli/cli-dump.c: Ditto. + * cli/cli-logging.c: Ditto. + * cli/cli-script.c: Ditto. + * cli/cli-setshow.c: Ditto. + * common/signals.c: Ditto. + * mi/mi-cmd-break.c: Ditto. + * mi/mi-cmd-disas.c: Ditto. + * mi/mi-cmd-stack.c: Ditto. + * mi/mi-cmd-var.c: Ditto. + * mi/mi-cmds.c: Ditto. + * mi/mi-common.h: Ditto. + * mi/mi-console.c: Ditto. + * mi/mi-interp.c: Ditto. + * mi/mi-main.c: Ditto. + * osf-share/cma_attr.c: Ditto. + * osf-share/cma_deb_core.h: Ditto. hooks/post-receive -- Repository for Project Archer.