From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14604 invoked by alias); 2 Jan 2012 22:59:26 -0000 Mailing-List: contact archer-commits-help@sourceware.org; run by ezmlm Sender: Precedence: bulk List-Post: List-Help: List-Subscribe: Received: (qmail 14477 invoked by uid 9674); 2 Jan 2012 22:59:24 -0000 Date: Mon, 02 Jan 2012 22:59:00 -0000 Message-ID: <20120102225924.14462.qmail@sourceware.org> From: jkratoch@sourceware.org To: archer-commits@sourceware.org Subject: [SCM] archer-jankratochvil-vla: Merge remote-tracking branch 'gdb/master' into archer-jankratochvil-vla X-Git-Refname: refs/heads/archer-jankratochvil-vla X-Git-Reftype: branch X-Git-Oldrev: 36a2739be02aab088068b3fd575ff8ff313a956e X-Git-Newrev: d2f93c654587c54c80a20e5c739577156851d251 X-SW-Source: 2012-q1/txt/msg00006.txt.bz2 List-Id: The branch, archer-jankratochvil-vla has been updated via d2f93c654587c54c80a20e5c739577156851d251 (commit) via 641d898e09fd9711c714870902e4975bcd6ef738 (commit) via 2e3bac0ffeb9fe499785c6b2e4324652a965da0f (commit) via e5a03915cd98e1f5587c783a486bd79c81d34a63 (commit) via 17f147ec12e6fff1c3a028d901abe26b3bc3ec40 (commit) via 6d59758b05cf711dfbabdadee468406370226df5 (commit) via 936b1ce67d1d9dfbb5ff8981c3bbd684a51737c6 (commit) via 16d6433e67c0b1da71443f8dd58f0d06e0d2ea42 (commit) via 9b71162acf306b7fbed70cdb47cf7630ef0cedfe (commit) via 05d94e0dd05eae853c6d056f7880f68814c30eb8 (commit) via 4384851a383f29a4d3b75b4ed36c3efcec5ded29 (commit) via e0cf02e8332005ce90524d38874e5ec9892f118c (commit) via f4880dd99e98e8d7c252c032ca6722572eb32a5f (commit) via 7e3b2d8b307393fa3e37562f027212676ce6a526 (commit) via 0239f6ede5e93a08eb39bba8410248f3adb462ec (commit) via 2eb7b40a8d79c8992a59b65cd5efd838266c5b81 (commit) via 6971cd1840358f9edd57e9d4557dbc888e3bcf3b (commit) via e7bdd1834e24e85e2626dcd025ee5bbc654c2882 (commit) via f77839006a563f007171124198695da76ff77cd4 (commit) via 67743024857cbc7dbe11d17dffcdad1ae57f7f27 (commit) via fe19822761b4635f392875a186e48af446b40f41 (commit) via 45d0bff374b6108e440e2dbee65bcbcd73ef1e44 (commit) via aeaa33dcfaba3188c20b9264ca27d7624990ee47 (commit) via 692cfd259e9018d244f1cf177453d84461392a41 (commit) via 589c809e8068cfc2e66c92695268165e1a2bb5d1 (commit) via 83f7dbbe9f48e5d9bef42e7c913f637656de2d9c (commit) via bd8fbf3b0abc063eea8fb763b058b0e71bf84a31 (commit) via aee81df7a1621818fd37edf484b76160fe5bfb2c (commit) via 0aea5806b4128e3310c00c03eed8b263ecba2408 (commit) via 92700536e13e24e2471bd1bc5949fb3997c3d657 (commit) via 0e3edabe28a58db9ad2f859405b16c0feca53c56 (commit) via 9027c962842968cd981ffaacf8d1275c27e74cb3 (commit) via c216a5ff1eb1697fd4e8529348d8cc660036b855 (commit) via 21b92d850d944458bdf29b9b95ec81b2f59a3872 (commit) via 6de0ba0ce303b1d7366edad1eb33469a8705ee64 (commit) via 61dd31a4b334466abc96dc933eb027fcf56136ae (commit) via e57e0f6560e61c4413ccd65dc65faae21e417f67 (commit) via 536099be2d07a74b65aa946333ee72eabf91a287 (commit) via cbefddd6bcf8d56082688d9e9cc18287bf091856 (commit) via dba62eaeebdfb71c1703bd939292b01121de3dbb (commit) via e26fc316c31768a2bc6b130dbd64cb35803caa44 (commit) via 605869c4f481cb8acf038a3a1b5ecffae7b7c76c (commit) via 7f525865c9079def7775ed1951f46d5d9b5ee1a9 (commit) via aa612e6764e04856a1b63c36dc9b998e298633da (commit) via 6935b2241070391b0e03f610bfa6f1b967c37997 (commit) via 68157edc52c52e1f716898c0bcddb47f39ec1b25 (commit) via 4c8df8e7456d95507e9fe0f630b5430cf7b038f3 (commit) via f39bc634a93573f10922b2528895b92c4585ed9f (commit) via 64f5007ad54565b6da311c7e019ee841ddafdfd8 (commit) via c546569957b1d8b9b11c16fd9e246598184e245f (commit) via 29a43252b9656e98155bb1dcf19261151e82a59e (commit) via a91cf495a623c39b518a1f8910a50a11eed5c358 (commit) via aaa2b8761fd96a0695ba1e2415317fa105de5a73 (commit) via ac6e2683fdf34cfea298ca1538b4322e3d6b3369 (commit) via 2dde84ff788985abfeac628eb98a595f8a05bc07 (commit) via cf0434a0ed7d5f0f793b0e60ad36cc829d455235 (commit) via 7c56fb07bde331d79eb73ece26b8fc960aa13eb2 (commit) via 2b86ff17b1b9b2f9a412419b4e3130c70c5b8970 (commit) via de25529dff00ff10dd33da64ea585e3000c20d45 (commit) via ac21184be7873c61803fe7581536c6e207caa133 (commit) via 846d69aa9953c9a385c9f12e64d1168f19bbb7bb (commit) via 08881a035c809afdf95cdaa401b16bd6e393c617 (commit) via dbe5eff289dde3ca4b8e603e753004477fd712e7 (commit) via 93f66bbd89f354e4e91b54e0c840656d818b5a45 (commit) via 60f42b3a9ad673413e4021fa0260ef042b1f7373 (commit) via 3142def980696e09df117456488b11b8b8ff3ffe (commit) via 9d9aa83a0d5cb1cb3faef80de71ac7db46c420a5 (commit) via 848fbc6004fce2c496387149da7ce59e76ad9ba2 (commit) via 63af57135ddf1d96c37be8054be887872e563faf (commit) via c4112dfdbae0412065a98f55d1923d88b0788363 (commit) via 4894a42b3b1c0be69c9eb53b94c39b1d93497455 (commit) via 8b446adc7f6d96c000ecb3833caa9a3ef2dde81b (commit) via 3ea5f7adf032f0340193b4632fcdefca3fcc0c04 (commit) via a6d4f2d4a8828e688f1aba6ff6d35e4a9496fe71 (commit) via 9406bc6d52be2ec22ce920104605709e7c0deabe (commit) via bcd9870b9f946ae6bc852c71caef61b42a6601bd (commit) via 23bef9c11849e876883ac5c543c20dbd32b17d14 (commit) via ce49cc988a406151d9c8d7c61e6a1b410c4dee28 (commit) via 4bcfd2b7a4720de58b86ca390b7d0744eeb361dd (commit) via ae2a8212b7f7eb6d9a7ea432cdd2bcb3b76b7f79 (commit) via 3d583e568fcd09ef8f64383877c9840f7da29d10 (commit) via fea778453b931067df16ffcaab24858a2063366b (commit) via dc8a0875bb4a7079afa16d88d34e5b2a6bd3430c (commit) via efb82700e6079a181006d710c56faab88d9ab7b1 (commit) via 383608774e46639738c9efdf3d075a6b827ca3d2 (commit) via 4e4f439257baf487dc479c3a25d62434531ed94f (commit) via 1664c9c9294c7a2d80b7e77eebb28f678b4cbc59 (commit) via 0c6af30d49d27e5a52be80cb0022b0546cfc7199 (commit) via bc3cbcefe8a48249dbd700bd22cdf8851884b2e4 (commit) via 0bc6abb351c27583396a0e5d2fecd0141aa894c7 (commit) via 5d1d1cf42b079f79751e4b4300e2b33edf02f3d4 (commit) via 24dba32713620949a76a5b3301ef09fafbaebe67 (commit) via b03a20ed642740d56afa2113890cf0b46648b03e (commit) via 4cd9f210713bd759e69ef6f7a1f2199c2934c8ea (commit) via 6f2f42b8a139ab7d88a4dd4dbe82bddcea737ea8 (commit) via 12d5fca175219f6eaf19d2d4a70795a8cc7407c1 (commit) via f80241eeca80e9fa48a59b5027634ea6de8d8c4e (commit) via 2823cda32f101589c4888177875bb8c72ae94132 (commit) from 36a2739be02aab088068b3fd575ff8ff313a956e (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit d2f93c654587c54c80a20e5c739577156851d251 Merge: 36a2739 641d898 Author: Jan Kratochvil Date: Mon Jan 2 23:59:01 2012 +0100 Merge remote-tracking branch 'gdb/master' into archer-jankratochvil-vla Conflicts: gdb/dwarf2read.c ----------------------------------------------------------------------- Summary of changes: bfd/ChangeLog | 109 + bfd/bfd-in2.h | 9 + bfd/elf32-arm.c | 2 + bfd/elf32-mips.c | 114 + bfd/elf32-rl78.c | 998 ++- bfd/elf32-s390.c | 2 +- bfd/elf64-mips.c | 219 + bfd/elf64-s390.c | 2 +- bfd/elfn32-mips.c | 219 + bfd/elfxx-mips.c | 131 +- bfd/libbfd.h | 7 + bfd/mach-o-i386.c | 1 + bfd/mach-o-target.c | 3 +- bfd/mach-o-x86-64.c | 11 + bfd/mach-o.c | 31 +- bfd/mach-o.h | 3 +- bfd/reloc.c | 17 + bfd/version.h | 2 +- bfd/vms-lib.c | 6 +- config/ChangeLog | 11 + config/warnings.m4 | 24 +- gdb/.gitignore | 1 - gdb/ChangeLog |12526 +------------------- gdb/{ChangeLog => ChangeLog-2011} | 251 + gdb/Makefile.in | 84 +- gdb/NEWS | 7 + gdb/ada-lang.c | 38 +- gdb/amd64-linux-nat.c | 10 + gdb/arch-utils.c | 2 +- gdb/arm-tdep.c | 6 + gdb/breakpoint.c | 3 +- gdb/breakpoint.h | 2 +- gdb/common/gdb_thread_db.h | 2 +- gdb/config/djgpp/fnchange.lst | 1 + gdb/configure | 4 - gdb/configure.ac | 4 - gdb/configure.tgt | 138 +- gdb/dbxread.c | 2 +- gdb/dictionary.c | 11 + gdb/doc/ChangeLog | 19 + gdb/doc/all-cfg.texi | 3 - gdb/doc/gdb.texinfo | 63 +- gdb/doc/gdbint.texinfo | 41 +- gdb/dwarf2read.c | 365 +- gdb/elfread.c | 27 +- gdb/environ.c | 4 +- gdb/gcore.h | 2 +- gdb/gdbarch.h | 2 +- gdb/gdbarch.sh | 2 +- gdb/gdbserver/ChangeLog | 9 + gdb/gdbserver/gdbreplay.c | 2 +- gdb/gdbserver/server.c | 2 +- gdb/gdbserver/terminal.h | 2 +- gdb/hppa-hpux-tdep.c | 8 +- gdb/i386-linux-nat.c | 10 + gdb/inf-ptrace.c | 58 + gdb/infcall.c | 47 +- gdb/infcmd.c | 39 +- gdb/inferior.h | 3 + gdb/jit.c | 4 +- gdb/linespec.c | 35 + gdb/linux-nat.c | 10 +- gdb/minsyms.c | 86 +- gdb/minsyms.h | 251 + gdb/objfiles.c | 25 +- gdb/ppc-linux-nat.c | 3 +- gdb/ppc-linux-tdep.c | 2 +- gdb/psymtab.c | 2 +- gdb/python/py-auto-load.c | 7 +- gdb/python/py-breakpoint.c | 48 +- gdb/python/py-finishbreakpoint.c | 462 + gdb/python/py-frame.c | 32 +- gdb/python/py-value.c | 4 +- gdb/python/python-internal.h | 50 +- gdb/python/python.c | 1 + gdb/rs6000-tdep.h | 2 - gdb/s390-nat.c | 2 +- gdb/s390-tdep.c | 10 +- gdb/symfile.c | 69 +- gdb/symfile.h | 7 +- gdb/symtab.h | 80 +- gdb/testsuite/ChangeLog | 141 + gdb/testsuite/dg-extract-results.sh | 2 +- gdb/testsuite/gdb.ada/task_bp.exp | 68 + gdb/testsuite/gdb.ada/task_bp/foo.adb | 20 + gdb/testsuite/gdb.ada/task_bp/pck.adb | 21 + gdb/testsuite/gdb.ada/task_bp/pck.ads | 20 + gdb/testsuite/gdb.arch/gcore.c | 2 +- gdb/testsuite/gdb.arch/gdb1558.c | 2 +- gdb/testsuite/gdb.arch/i386-gnu-cfi.c | 2 +- gdb/testsuite/gdb.base/break.exp | 9 +- gdb/testsuite/gdb.base/callfuncs.exp | 3 - gdb/testsuite/gdb.base/complex.c | 2 +- gdb/testsuite/gdb.base/cvexpr.c | 2 +- gdb/testsuite/gdb.base/{gdb1555-main.c => dmsym.c} | 14 +- gdb/testsuite/gdb.base/dmsym.exp | 87 + .../gdb.base/{gdb1555-main.c => dmsym_main.c} | 23 +- gdb/testsuite/gdb.base/fileio.exp | 5 +- gdb/testsuite/gdb.base/foll-vfork.exp | 4 +- gdb/testsuite/gdb.base/gcore.c | 2 +- gdb/testsuite/gdb.base/gdb1555-main.c | 2 +- gdb/testsuite/gdb.base/gdb1555.c | 2 +- gdb/testsuite/gdb.base/gdb1821.c | 2 +- gdb/testsuite/gdb.base/long_long.c | 3 +- gdb/testsuite/gdb.base/reread.exp | 3 +- gdb/testsuite/gdb.base/reread2.c | 11 + gdb/testsuite/gdb.base/restore.c | 2 +- gdb/testsuite/gdb.base/sepdebug.c | 4 +- gdb/testsuite/gdb.base/sepdebug.exp | 9 +- gdb/testsuite/gdb.base/type-opaque-lib.c | 2 +- gdb/testsuite/gdb.base/type-opaque-main.c | 2 +- gdb/testsuite/gdb.cell/fork.exp | 2 + gdb/testsuite/gdb.cell/gcore.exp | 2 + gdb/testsuite/gdb.cell/solib-symbol.exp | 17 +- gdb/testsuite/gdb.cp/maint.exp | 2 +- gdb/testsuite/gdb.cp/namespace1.cc | 2 +- gdb/testsuite/gdb.cp/pr9631.cc | 3 +- gdb/testsuite/gdb.cp/psmang1.cc | 3 +- gdb/testsuite/gdb.cp/psmang2.cc | 3 +- gdb/testsuite/gdb.cp/ptype-cv-cp.exp | 5 +- gdb/testsuite/gdb.cp/static-method.exp | 11 +- gdb/testsuite/gdb.cp/temargs.exp | 6 +- gdb/testsuite/gdb.cp/templates.exp | 54 +- gdb/testsuite/gdb.cp/try_catch.cc | 3 +- gdb/testsuite/gdb.cp/virtfunc.cc | 2 +- gdb/testsuite/gdb.hp/gdb.base-hp/reg.exp | 3 +- gdb/testsuite/gdb.linespec/linespec.exp | 2 +- gdb/testsuite/gdb.mi/basics.c | 2 +- gdb/testsuite/gdb.mi/mi-nsmoribund.exp | 6 +- gdb/testsuite/gdb.mi/mi-stack.c | 2 +- gdb/testsuite/gdb.mi/mi-var-child.c | 2 +- gdb/testsuite/gdb.mi/mi2-var-child.exp | 3 +- gdb/testsuite/gdb.mi/var-cmd.c | 2 +- gdb/testsuite/gdb.python/Makefile.in | 5 +- gdb/testsuite/gdb.python/py-breakpoint.exp | 7 +- gdb/testsuite/gdb.python/py-finish-breakpoint.c | 103 + gdb/testsuite/gdb.python/py-finish-breakpoint.exp | 266 + gdb/testsuite/gdb.python/py-finish-breakpoint.py | 89 + ...{py-frame-inline.c => py-finish-breakpoint2.cc} | 50 +- gdb/testsuite/gdb.python/py-finish-breakpoint2.exp | 68 + gdb/testsuite/gdb.python/py-finish-breakpoint2.py | 33 + gdb/testsuite/gdb.python/py-frame-inline.c | 2 +- gdb/testsuite/gdb.python/py-type.exp | 5 +- gdb/testsuite/gdb.threads/attach-stopped.exp | 51 +- gdb/testsuite/gdb.threads/attachstop-mt.c | 56 - gdb/testsuite/gdb.threads/attachstop-mt.exp | 266 - gdb/testsuite/gdb.threads/fork-thread-pending.c | 8 + gdb/testsuite/gdb.threads/thread_check.c | 2 +- gdb/tic6x-tdep.c | 3 +- gdb/top.c | 2 +- gdb/tui/tui-main.c | 37 - gdb/utils.c | 19 + gdb/value.c | 109 +- gdb/value.h | 2 + gdb/varobj.c | 9 +- gdb/version.in | 2 +- include/ChangeLog | 4 + include/elf/ChangeLog | 5 + include/elf/mips.h | 9 +- include/elf/rl78.h | 13 +- libdecnumber/ChangeLog | 8 + libdecnumber/configure | 30 +- libiberty/ChangeLog | 13 + libiberty/aclocal.m4 | 2 +- libiberty/configure | 14 +- sim/common/ChangeLog | 10 + sim/common/Make-common.in | 6 +- sim/common/dv-sockser.h | 2 +- sim/common/sim-assert.h | 2 +- sim/common/sim-fpu.c | 2 +- sim/cr16/ChangeLog | 7 + sim/cr16/simops.c | 10 + sim/erc32/ChangeLog | 6 + sim/erc32/configure | 63 +- sim/erc32/configure.ac | 4 +- sim/m32c/ChangeLog | 4 + sim/m32c/blinky.S | 2 +- sim/m32c/gloss.S | 2 +- sim/m32c/sample.S | 2 +- sim/mn10300/ChangeLog | 4 + sim/mn10300/sim-main.h | 2 +- sim/ppc/ChangeLog | 4 + sim/ppc/dp-bit.c | 2 +- 183 files changed, 5152 insertions(+), 13795 deletions(-) copy gdb/{ChangeLog => ChangeLog-2011} (98%) create mode 100644 gdb/minsyms.h create mode 100644 gdb/python/py-finishbreakpoint.c create mode 100644 gdb/testsuite/gdb.ada/task_bp.exp create mode 100644 gdb/testsuite/gdb.ada/task_bp/foo.adb create mode 100644 gdb/testsuite/gdb.ada/task_bp/pck.adb create mode 100644 gdb/testsuite/gdb.ada/task_bp/pck.ads copy gdb/testsuite/gdb.base/{gdb1555-main.c => dmsym.c} (74%) create mode 100644 gdb/testsuite/gdb.base/dmsym.exp copy gdb/testsuite/gdb.base/{gdb1555-main.c => dmsym_main.c} (67%) create mode 100644 gdb/testsuite/gdb.python/py-finish-breakpoint.c create mode 100644 gdb/testsuite/gdb.python/py-finish-breakpoint.exp create mode 100644 gdb/testsuite/gdb.python/py-finish-breakpoint.py copy gdb/testsuite/gdb.python/{py-frame-inline.c => py-finish-breakpoint2.cc} (50%) create mode 100644 gdb/testsuite/gdb.python/py-finish-breakpoint2.exp create mode 100644 gdb/testsuite/gdb.python/py-finish-breakpoint2.py delete mode 100644 gdb/testsuite/gdb.threads/attachstop-mt.c delete mode 100644 gdb/testsuite/gdb.threads/attachstop-mt.exp delete mode 100644 gdb/tui/tui-main.c First 500 lines of diff: diff --git a/bfd/ChangeLog b/bfd/ChangeLog index f017209..9af9565 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,112 @@ +2011-12-24 Jan Kratochvil + + * elf32-rl78.c (rl78_elf_relocate_section, rl78_dump_symtab) + (rl78_elf_relax_section): Remove debug prints. + +2011-12-23 Jan Kratochvil + + * elf32-rl78.c (rl78_elf_relocate_section, rl78_elf_relax_section): Use + BFD_VMA_FMT. + +2011-12-23 Jan Kratochvil + + * elf32-rl78.c (prev_alignment, sec_start): Remove unused variables. + +2011-12-23 Tristan Gingold + + * vms-lib.c (vms_traverse_index): Move pointer update code. + +2011-12-22 DJ Delorie + + * elf32-rl78.c (rl78_elf_howto_table): Add R_RL78_RH_RELAX. + (rl78_reloc_map): Add BFD_RELOC_RL78_RELAX. + (rl78_elf_relocate_section): Add R_RL78_RH_RELAX, R_RL78_RH_SFR, + and R_RL78_RH_SADDR. + (rl78_elf_finish_dynamic_sections): Only validate PLT section if + we didn't relax anything, as relaxing might remove a PLT reference + after we've set up the table. + (elf32_rl78_relax_delete_bytes): New. + (reloc_bubblesort): New. + (rl78_offset_for_reloc): New. + (relax_addr16): New. + (rl78_elf_relax_section): Add support for relaxing long + instructions into short ones. + +2011-12-22 Martin Schwidefsky + + * elf32-s390.c (elf_s390_relocate_section): Add check for debugging + section in LD to LE linker relaxation for R_390_TLS_LDO32. + * elf64-s390.c (elf_s390_relocate_section): Likewise for + R_390_TLS_LDO64. + +2011-12-21 Ulrich Weigand + + * elf32-arm.c (elf32_arm_nabi_grok_psinfo): Fill in core_pid. + +2011-12-19 Iain Sandoe + + * mach-o-i386.c (bfd_mach_o_section_type_valid_for_tgt): Define NULL. + * mach-o-target.c (bfd_mach_o_backend_data): Initialize + bfd_mach_o_section_type_valid_for_tgt + * mach-o-x86-64.c (bfd_mach_o_section_type_valid_for_x86_64): New. + (bfd_mach_o_section_type_valid_for_tgt): Set to + bfd_mach_o_section_type_valid_for_x86_64. + * mach-o.c (bfd_mach_o_section_type_name): Reorder and eliminate dup. + (bfd_mach_o_section_attribute_name): Reorder. + (bfd_mach_o_get_section_type_from_name): If the target has defined a + validator for section types, then use it. + * mach-o.h (bfd_mach_o_get_section_type_from_name): Alter declaration + to include the bfd. + +2011-12-19 Chung-Lin Tang + + * reloc.c (BFD_RELOC_MIPS16_TLS_GD,BFD_RELOC_MIPS16_TLS_LDM, + BFD_RELOC_MIPS16_TLS_DTPREL_HI16,BFD_RELOC_MIPS16_TLS_DTPREL_LO16, + BFD_RELOC_MIPS16_TLS_GOTTPREL,BFD_RELOC_MIPS16_TLS_TPREL_HI16, + BFD_RELOC_MIPS16_TLS_TPREL_LO16): New relocations for MIPS16 TLS. + * bfd-in2.h (bfd_reloc_code_real): Regenerate. + * libbfd.h (bfd_reloc_code_real_names): Regenerate. + * elf32-mips.c (elf_mips16_howto_table_rel): Add R_MIPS16_TLS_* + entries. + (mips16_reloc_map): Add BFD_RELOC_MIPS16_TLS_* to R_MIPS16_TLS_* + mappings. + * elfn32-mips.c (elf_mips16_howto_table_rel, + elf_mips16_howto_table_rela): Add R_MIPS16_TLS_* entries. + (mips16_reloc_map): Add BFD_RELOC_MIPS16_TLS_* to R_MIPS16_TLS_* + mappings. + * elf64-mips.c (mips16_elf64_howto_table_rel, + mips16_elf64_howto_table_rela): Add R_MIPS16_TLS_* entries. + (mips16_reloc_map): Add BFD_RELOC_MIPS16_TLS_* to R_MIPS16_TLS_* + mappings. + * elfxx-mips.c (TLS_RELOC_P,mips16_reloc_p, + _bfd_mips_elf_check_relocs): Add cases for R_MIPS16_TLS_* relocations. + (tls_gd_reloc_p): Add R_MIPS16_TLS_GD case. + (tls_ldm_reloc_p): Add R_MIPS16_TLS_LDM case. + (tls_gottprel_reloc_p): Add R_MIPS16_TLS_GOTTPREL case. + (mips_elf_calculate_relocation): Add cases for R_MIPS16_TLS_*, + R_MIPS_TLS_DTPREL32/64, and R_MIPS_TLS_TPREL32/64 relocations. + +2011-12-19 Chung-Lin Tang + Catherine Moore + Sandra Loosemore + Richard Sandiford + + * elfxx-mips.c (mips_elf_local_pic_function_p): Return true when + H is a MIPS16 function with a kept 32-bit stub. Update comments. + (mips_elf_get_la25_target): New function. + (mips_elf_add_la25_intro): Change to use mips_elf_get_la25_target(). + (mips_elf_add_la25_stub): Move compute of use_trampoline_p down, + change to use mips_elf_get_la25_target(). + (mips_elf_relocation_needs_la25_stub): Add target_is_16_bit_code_p + parameter, add switch case for R_MIPS16_26. + (mips_elf_calculate_relocation): Redirect relocation to point to the + LA25 stub if it exists, instead of the MIPS16 stub. Update arguments + of call to mips_elf_relocation_needs_la25_stub(), don't use la25 stub + for mips16->mips16 calls. + (_bfd_mips_elf_check_relocs): Update arguments of call to + mips_elf_relocation_needs_la25_stub(). + (mips_elf_create_la25_stub): Change to use mips_elf_get_la25_target(). + 2011-12-16 Shinichiro Hamaji * mach-o-i386.c (TARGET_PRIORITY): Define as 0 (top priority) diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index 2bb0ec7..1523660 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -2786,6 +2786,15 @@ to compensate for the borrow when the low bits are added. */ /* MIPS16 low 16 bits. */ BFD_RELOC_MIPS16_LO16, +/* MIPS16 TLS relocations */ + BFD_RELOC_MIPS16_TLS_GD, + BFD_RELOC_MIPS16_TLS_LDM, + BFD_RELOC_MIPS16_TLS_DTPREL_HI16, + BFD_RELOC_MIPS16_TLS_DTPREL_LO16, + BFD_RELOC_MIPS16_TLS_GOTTPREL, + BFD_RELOC_MIPS16_TLS_TPREL_HI16, + BFD_RELOC_MIPS16_TLS_TPREL_LO16, + /* Relocation against a MIPS literal section. */ BFD_RELOC_MIPS_LITERAL, BFD_RELOC_MICROMIPS_LITERAL, diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c index f42b2bf..31ea861 100644 --- a/bfd/elf32-arm.c +++ b/bfd/elf32-arm.c @@ -1966,6 +1966,8 @@ elf32_arm_nabi_grok_psinfo (bfd *abfd, Elf_Internal_Note *note) return FALSE; case 124: /* Linux/ARM elf_prpsinfo. */ + elf_tdata (abfd)->core_pid + = bfd_get_32 (abfd, note->descdata + 12); elf_tdata (abfd)->core_program = _bfd_elfcore_strndup (abfd, note->descdata + 28, 16); elf_tdata (abfd)->core_command diff --git a/bfd/elf32-mips.c b/bfd/elf32-mips.c index fd3d4ba..61e8b45 100644 --- a/bfd/elf32-mips.c +++ b/bfd/elf32-mips.c @@ -830,6 +830,111 @@ static reloc_howto_type elf_mips16_howto_table_rel[] = 0x0000ffff, /* src_mask */ 0x0000ffff, /* dst_mask */ FALSE), /* pcrel_offset */ + + /* MIPS16 TLS general dynamic variable reference. */ + HOWTO (R_MIPS16_TLS_GD, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + _bfd_mips_elf_generic_reloc, /* special_function */ + "R_MIPS16_TLS_GD", /* name */ + TRUE, /* partial_inplace */ + 0x0000ffff, /* src_mask */ + 0x0000ffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* MIPS16 TLS local dynamic variable reference. */ + HOWTO (R_MIPS16_TLS_LDM, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + _bfd_mips_elf_generic_reloc, /* special_function */ + "R_MIPS16_TLS_LDM", /* name */ + TRUE, /* partial_inplace */ + 0x0000ffff, /* src_mask */ + 0x0000ffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* MIPS16 TLS local dynamic offset. */ + HOWTO (R_MIPS16_TLS_DTPREL_HI16, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + _bfd_mips_elf_generic_reloc, /* special_function */ + "R_MIPS16_TLS_DTPREL_HI16", /* name */ + TRUE, /* partial_inplace */ + 0x0000ffff, /* src_mask */ + 0x0000ffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* MIPS16 TLS local dynamic offset. */ + HOWTO (R_MIPS16_TLS_DTPREL_LO16, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + _bfd_mips_elf_generic_reloc, /* special_function */ + "R_MIPS16_TLS_DTPREL_LO16", /* name */ + TRUE, /* partial_inplace */ + 0x0000ffff, /* src_mask */ + 0x0000ffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* MIPS16 TLS thread pointer offset. */ + HOWTO (R_MIPS16_TLS_GOTTPREL, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + _bfd_mips_elf_generic_reloc, /* special_function */ + "R_MIPS16_TLS_GOTTPREL", /* name */ + TRUE, /* partial_inplace */ + 0x0000ffff, /* src_mask */ + 0x0000ffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* MIPS16 TLS thread pointer offset. */ + HOWTO (R_MIPS16_TLS_TPREL_HI16, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + _bfd_mips_elf_generic_reloc, /* special_function */ + "R_MIPS16_TLS_TPREL_HI16", /* name */ + TRUE, /* partial_inplace */ + 0x0000ffff, /* src_mask */ + 0x0000ffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* MIPS16 TLS thread pointer offset. */ + HOWTO (R_MIPS16_TLS_TPREL_LO16, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 16, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_signed, /* complain_on_overflow */ + _bfd_mips_elf_generic_reloc, /* special_function */ + "R_MIPS16_TLS_TPREL_LO16", /* name */ + TRUE, /* partial_inplace */ + 0x0000ffff, /* src_mask */ + 0x0000ffff, /* dst_mask */ + FALSE), /* pcrel_offset */ }; static reloc_howto_type elf_micromips_howto_table_rel[] = @@ -1796,6 +1901,15 @@ static const struct elf_reloc_map mips16_reloc_map[] = { BFD_RELOC_MIPS16_CALL16, R_MIPS16_CALL16 - R_MIPS16_min }, { BFD_RELOC_MIPS16_HI16_S, R_MIPS16_HI16 - R_MIPS16_min }, { BFD_RELOC_MIPS16_LO16, R_MIPS16_LO16 - R_MIPS16_min }, + { BFD_RELOC_MIPS16_TLS_GD, R_MIPS16_TLS_GD - R_MIPS16_min }, + { BFD_RELOC_MIPS16_TLS_LDM, R_MIPS16_TLS_LDM - R_MIPS16_min }, + { BFD_RELOC_MIPS16_TLS_DTPREL_HI16, + R_MIPS16_TLS_DTPREL_HI16 - R_MIPS16_min }, + { BFD_RELOC_MIPS16_TLS_DTPREL_LO16, + R_MIPS16_TLS_DTPREL_LO16 - R_MIPS16_min }, + { BFD_RELOC_MIPS16_TLS_GOTTPREL, R_MIPS16_TLS_GOTTPREL - R_MIPS16_min }, + { BFD_RELOC_MIPS16_TLS_TPREL_HI16, R_MIPS16_TLS_TPREL_HI16 - R_MIPS16_min }, + { BFD_RELOC_MIPS16_TLS_TPREL_LO16, R_MIPS16_TLS_TPREL_LO16 - R_MIPS16_min } }; static const struct elf_reloc_map micromips_reloc_map[] = diff --git a/bfd/elf32-rl78.c b/bfd/elf32-rl78.c index 92c01b0..9cc3697 100644 --- a/bfd/elf32-rl78.c +++ b/bfd/elf32-rl78.c @@ -85,7 +85,7 @@ static reloc_howto_type rl78_elf_howto_table [] = EMPTY_HOWTO (0x2a), EMPTY_HOWTO (0x2b), EMPTY_HOWTO (0x2c), - EMPTY_HOWTO (0x2d), + RL78REL (RH_RELAX, 0, 0, 0, dont, FALSE), EMPTY_HOWTO (0x2e), EMPTY_HOWTO (0x2f), @@ -234,7 +234,8 @@ static const struct rl78_reloc_map rl78_reloc_map [] = { BFD_RELOC_RL78_ABS32_REV, R_RL78_ABS32_REV }, { BFD_RELOC_RL78_ABS16UL, R_RL78_ABS16UL }, { BFD_RELOC_RL78_ABS16UW, R_RL78_ABS16UW }, - { BFD_RELOC_RL78_ABS16U, R_RL78_ABS16U } + { BFD_RELOC_RL78_ABS16U, R_RL78_ABS16U }, + { BFD_RELOC_RL78_RELAX, R_RL78_RH_RELAX } }; static reloc_howto_type * @@ -496,20 +497,8 @@ rl78_elf_relocate_section else plt_offset = elf_local_got_offsets (input_bfd) + r_symndx; - /* printf("%s: rel %x plt %d\n", h ? h->root.root.string : "(none)", - relocation, *plt_offset);*/ - if (valid_16bit_address (relocation)) + if (! valid_16bit_address (relocation)) { - /* If the symbol is in range for a 16-bit address, we should - have deallocated the plt entry in relax_section. */ - BFD_ASSERT (*plt_offset == (bfd_vma) -1); - } - else - { - /* If the symbol is out of range for a 16-bit address, - we must have allocated a plt entry. */ - BFD_ASSERT (*plt_offset != (bfd_vma) -1); - /* If this is the first time we've processed this symbol, fill in the plt entry with the correct symbol address. */ if ((*plt_offset & 1) == 0) @@ -575,6 +564,9 @@ rl78_elf_relocate_section case R_RL78_NONE: break; + case R_RL78_RH_RELAX: + break; + case R_RL78_DIR8S_PCREL: RANGE (-128, 127); OP (0) = relocation; @@ -656,6 +648,16 @@ rl78_elf_relocate_section OP (0) = relocation >> 24; break; + case R_RL78_RH_SFR: + RANGE (0xfff00, 0xfffff); + OP (0) = relocation & 0xff; + break; + + case R_RL78_RH_SADDR: + RANGE (0xffe20, 0xfff1f); + OP (0) = relocation & 0xff; + break; + /* Complex reloc handling: */ case R_RL78_ABS32: @@ -1132,18 +1134,6 @@ rl78_dump_symtab (bfd * abfd, void * internal_syms, void * external_syms) case SHN_UNDEF: st_shndx_str = "SHN_UNDEF"; default: st_shndx_str = ""; } - - printf ("isym = %p st_value = %lx st_size = %lx st_name = (%lu) %s " - "st_info = (%d) %s %s st_other = (%d) %s st_shndx = (%d) %s\n", - isym, - (unsigned long) isym->st_value, - (unsigned long) isym->st_size, - isym->st_name, - bfd_elf_string_from_elf_section (abfd, symtab_hdr->sh_link, - isym->st_name), - isym->st_info, st_info_str, st_info_stb_str, - isym->st_other, st_other_str, - isym->st_shndx, st_shndx_str); } if (free_internal) free (internal_syms); @@ -1273,18 +1263,24 @@ rl78_elf_finish_dynamic_sections (bfd *abfd ATTRIBUTE_UNUSED, bfd *dynobj; asection *splt; - /* As an extra sanity check, verify that all plt entries have - been filled in. */ + /* As an extra sanity check, verify that all plt entries have been + filled in. However, relaxing might have changed the relocs so + that some plt entries don't get filled in, so we have to skip + this check if we're relaxing. Unfortunately, check_relocs is + called before relaxation. */ - if ((dynobj = elf_hash_table (info)->dynobj) != NULL - && (splt = bfd_get_section_by_name (dynobj, ".plt")) != NULL) + if (info->relax_trip > 0) { - bfd_byte *contents = splt->contents; - unsigned int i, size = splt->size; - for (i = 0; i < size; i += 4) + if ((dynobj = elf_hash_table (info)->dynobj) != NULL + && (splt = bfd_get_section_by_name (dynobj, ".plt")) != NULL) { - unsigned int x = bfd_get_32 (dynobj, contents + i); - BFD_ASSERT (x != 0); + bfd_byte *contents = splt->contents; + unsigned int i, size = splt->size; + for (i = 0; i < size; i += 4) + { + unsigned int x = bfd_get_32 (dynobj, contents + i); + BFD_ASSERT (x != 0); + } } } @@ -1503,6 +1499,485 @@ rl78_elf_relax_plt_section (bfd *dynobj, return TRUE; } +/* Delete some bytes from a section while relaxing. */ + +static bfd_boolean +elf32_rl78_relax_delete_bytes (bfd *abfd, asection *sec, bfd_vma addr, int count, + Elf_Internal_Rela *alignment_rel, int force_snip) +{ + Elf_Internal_Shdr * symtab_hdr; + unsigned int sec_shndx; + bfd_byte * contents; + Elf_Internal_Rela * irel; + Elf_Internal_Rela * irelend; + Elf_Internal_Sym * isym; + Elf_Internal_Sym * isymend; + bfd_vma toaddr; + unsigned int symcount; + struct elf_link_hash_entry ** sym_hashes; + struct elf_link_hash_entry ** end_hashes; + + if (!alignment_rel) + force_snip = 1; + + sec_shndx = _bfd_elf_section_from_bfd_section (abfd, sec); + + contents = elf_section_data (sec)->this_hdr.contents; + + /* The deletion must stop at the next alignment boundary, if + ALIGNMENT_REL is non-NULL. */ + toaddr = sec->size; + if (alignment_rel) + toaddr = alignment_rel->r_offset; + + irel = elf_section_data (sec)->relocs; + irelend = irel + sec->reloc_count; + + /* Actually delete the bytes. */ + memmove (contents + addr, contents + addr + count, + (size_t) (toaddr - addr - count)); + + /* If we don't have an alignment marker to worry about, we can just + shrink the section. Otherwise, we have to fill in the newly + created gap with NOP insns (0x03). */ + if (force_snip) + sec->size -= count; + else + memset (contents + toaddr - count, 0x03, count); + + /* Adjust all the relocs. */ + for (irel = elf_section_data (sec)->relocs; irel < irelend; irel++) + { + /* Get the new reloc address. */ + if (irel->r_offset > addr + && (irel->r_offset < toaddr + || (force_snip && irel->r_offset == toaddr))) + irel->r_offset -= count; + + /* If we see an ALIGN marker at the end of the gap, we move it + to the beginning of the gap, since marking these gaps is what + they're for. */ + if (irel->r_offset == toaddr + && ELF32_R_TYPE (irel->r_info) == R_RL78_RH_RELAX + && irel->r_addend & RL78_RELAXA_ALIGN) + irel->r_offset -= count; + } + + /* Adjust the local symbols defined in this section. */ + symtab_hdr = &elf_tdata (abfd)->symtab_hdr; + isym = (Elf_Internal_Sym *) symtab_hdr->contents; + isymend = isym + symtab_hdr->sh_info; + + for (; isym < isymend; isym++) + { + /* If the symbol is in the range of memory we just moved, we + have to adjust its value. */ + if (isym->st_shndx == sec_shndx + && isym->st_value > addr + && isym->st_value < toaddr) + isym->st_value -= count; + + /* If the symbol *spans* the bytes we just deleted (i.e. it's + *end* is in the moved bytes but it's *start* isn't), then we + must adjust its size. */ + if (isym->st_shndx == sec_shndx + && isym->st_value < addr + && isym->st_value + isym->st_size > addr + && isym->st_value + isym->st_size < toaddr) + isym->st_size -= count; + } + + /* Now adjust the global symbols defined in this section. */ hooks/post-receive -- Repository for Project Archer.