From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22725 invoked by alias); 12 Mar 2012 13:42:16 -0000 Mailing-List: contact archer-commits-help@sourceware.org; run by ezmlm Sender: Precedence: bulk List-Post: List-Help: List-Subscribe: Received: (qmail 22619 invoked by uid 9514); 12 Mar 2012 13:42:15 -0000 Date: Mon, 12 Mar 2012 13:42:00 -0000 Message-ID: <20120312134214.22604.qmail@sourceware.org> From: pmuldoon@sourceware.org To: archer-commits@sourceware.org Subject: [SCM] archer-pmuldoon-python-backtrace: Merge remote-tracking branch 'gdb/master' into archer-pmuldoon-python-backtrace X-Git-Refname: refs/heads/archer-pmuldoon-python-backtrace X-Git-Reftype: branch X-Git-Oldrev: 7972a7490fd571409b7b2910e6ebc316619eb09e X-Git-Newrev: 0e5e6d2d84fbf0a975c4f83017c845805b7d1ae2 X-SW-Source: 2012-q1/txt/msg00057.txt.bz2 List-Id: The branch, archer-pmuldoon-python-backtrace has been updated via 0e5e6d2d84fbf0a975c4f83017c845805b7d1ae2 (commit) via 82a7a1cb1861638e5c70c1229e5b9b3ab949c892 (commit) via a82f90efecc257c5b8826b7f6c52ad4e4acf48f3 (commit) via ee2f78d0feccbf7f2a90864ac08237c74d0b4325 (commit) via 186bbbf2ba11ce0043b91a025f972d99b26c1bd0 (commit) via 3d9a76399096d7fec83cf0bae4a8081a3c8a2e63 (commit) via 9850aef33ec992b4526960c0daf944252eaceb52 (commit) via d953592278391cfad764a29f32fe4a2b2ae954b0 (commit) via 60e1bf3dd24d0508103040a45f52b9d88bab6550 (commit) via 16de39cc0e44489e0b80b7fc93444c5c77fc0ea4 (commit) via 7f6229d8b64e9060cfa3206cab68ed3f9fefcc8c (commit) via 8559a0fdd0020188eb848d4b3f7142024f8750e8 (commit) via 4ffa113c3d4c45075d81bcfb833bd4c2f2aa5cb0 (commit) via fcd357cf29d8819fc89fd527b7d167d5fe61e9f6 (commit) via 0a6318044dba8762ff97f8b6085f3d7caa0c8962 (commit) via fa5fe0b2994c6723e73aa56d22ea87f849a9ec91 (commit) via fa17be37489e4854a07cf5fb67c223aa47a3b64c (commit) via a0cb7c7110404c8e9da6d4a556d5145b762675d2 (commit) via 9550653584a4a39c3ed0ab79af4292ed526f0337 (commit) via 58ca445b83eb5f6732124cd5a22d60c079b01d84 (commit) via 3327cadb71047e028be9dc2c8af3ea7dcbb8c760 (commit) via d9db1182aeb4ae633f4537f4e7289cb3827ab3f3 (commit) via 6a6eaeb6c00d8d28ecb300c1c60766c9f16cd45c (commit) via df85a15f86d11bfba2a0a4cf4583c8aefdbfda1f (commit) via b23543c9643d6a6977c1134e8ad55a17f40a9eba (commit) via c985cc781388627f3f248b5dfeeca04a2247927d (commit) via 7c4cb3092b65223a1ac9f1ceecf3c66ed74604f0 (commit) via 509548bab1144810d50556a34c768e33366f34ef (commit) via 6711d8d07852274e57eeda9cb28ded36d68c2916 (commit) via 0b2fe2ca87a1d9301e1a1892223418aa8286a518 (commit) via 30179ecad1dc16b8aa837d5c3e716c15c4451add (commit) via 614b158b34dda1c86dbb36d5b5784d0f47a83e55 (commit) via 63605861f505c8b5830856c8714491945d11a29c (commit) via 6aa1a3d2aa879e3c90cfb7ba6f092248e9b3d14f (commit) via 85c0a34413f7fa5087a57b1f60f1b4685ed38e7f (commit) via 159708f077cb29db1e640f38e338cfd11f72e434 (commit) via a6558cc6583d689bad730ea4b8b21e8902d33765 (commit) via 13e0b15bc830661c894a76c655f66ec4d7927d99 (commit) via 8e8e6374c970c822860d35a1eb1d8be4520eb84c (commit) via c18e72c42adedfa9668ba1591f3e49aeb8ea960a (commit) via 0212281f290ab420cc0d62d84eb250a7c244d469 (commit) via f159f57d7af49a583b5b90211e012319b2bc114e (commit) via 6224d1714d7a40a72438280140619a4f7d524351 (commit) via 0abc4898f61eb02eac736d48fb8fb9d92c610067 (commit) via 13cd52cfd198a089b406c1c2eeef7b4556792d51 (commit) via d1c19498d48c166cc5c19393c7f1d9f5123370ad (commit) via b70a3d51d2fe74ebae8a741b05f5b251e5808eb6 (commit) via 0f71212eb8ed33023680ea1c4948cc7af44e969a (commit) via 57e84ac2a7dc12e3f209b8ce3bc733e135cbe4c0 (commit) via 2b8a5c596753196f6f6e0748a360f361fee3960b (commit) via 51eee208890b0361af7c6883d8a06810af7c5bb7 (commit) via 1d128685c1d675f51a3da653de82a9693d7f13f8 (commit) via 5d72ced5a380a3632536e6e54dfa329b7371456a (commit) via b1f433f8eb0e1eaf6c9643a9de26eb1c522f1f5d (commit) via 3ad813f84814a470a62b51b1358797ba6af26a4a (commit) via 0604243d4133103a11e6537ca14b60bd081b5a1a (commit) via 0b649a4c107c932bf491ceb52b721ebe1f68fe12 (commit) via 31a184b1ffc7ba795cc2f2600b1067875d6f477d (commit) via 3d95994f68cdad292b011aee4461ead4b08bc53b (commit) via 69dc58094d7988726ccdac13589bd3e512844b4d (commit) via 489dccd1e32b8bee613f4e96bb5824a9bae10007 (commit) via bdcceb57c444574e4ba421655148ad5ad3a6f146 (commit) via 716b73c25b482e0fc0735f8146999c9ec93138a5 (commit) via 6c754e85cbb4ae4fb9c50618904b111998fb2d63 (commit) via 6eea6d8513cb9b44099f5c134fcec16e3b69e601 (commit) via 925e936bfb1aac0ef9167d0e4e77633c476f28ed (commit) via 40b614d91532b1d53da015ee7b4b34d77f5c893d (commit) via ae1a4d58ddd00a2f7a8f6cd90c86b56258202f93 (commit) via 59eb008961369eb5cd001ecc716290a7eb376b5c (commit) via d194479d5bcfcaf6228f6dbd9dabd2e30da94fe7 (commit) via 23794ebc1e6b59789f3a9f2c3294708d3e08bcb6 (commit) via ca95bc325c1390236f099f7fef198d26bf481af6 (commit) via efe31ecf47bcc9d0adfec37c6bbab47285935f23 (commit) from 7972a7490fd571409b7b2910e6ebc316619eb09e (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 0e5e6d2d84fbf0a975c4f83017c845805b7d1ae2 Merge: 7972a74 82a7a1c Author: Phil Muldoon Date: Mon Mar 12 13:41:52 2012 +0000 Merge remote-tracking branch 'gdb/master' into archer-pmuldoon-python-backtrace commit 82a7a1cb1861638e5c70c1229e5b9b3ab949c892 Author: andreast Date: Mon Mar 12 05:27:17 2012 +0000 2012-03-12 Andreas Tobler * amd64bsd-nat.c: Include amd64bsd-nat.h. commit a82f90efecc257c5b8826b7f6c52ad4e4acf48f3 Author: gdbadmin Date: Mon Mar 12 00:00:33 2012 +0000 *** empty log message *** commit ee2f78d0feccbf7f2a90864ac08237c74d0b4325 Author: Alan Modra Date: Sun Mar 11 23:00:05 2012 +0000 daily update commit 186bbbf2ba11ce0043b91a025f972d99b26c1bd0 Author: gdbadmin Date: Sun Mar 11 00:00:32 2012 +0000 *** empty log message *** commit 3d9a76399096d7fec83cf0bae4a8081a3c8a2e63 Author: Alan Modra Date: Sat Mar 10 23:00:04 2012 +0000 daily update commit 9850aef33ec992b4526960c0daf944252eaceb52 Author: gdbadmin Date: Sat Mar 10 00:00:33 2012 +0000 *** empty log message *** commit d953592278391cfad764a29f32fe4a2b2ae954b0 Author: Alan Modra Date: Fri Mar 9 23:39:02 2012 +0000 include/opcode/ * ppc.h: Add PPC_OPCODE_ALTIVEC2, PPC_OPCODE_E6500, PPC_OPCODE_TMR. opcodes/ * ppc-dis.c (ppc_opts): Add entries for "e5500" and "e6500". * ppc-opc.c (insert_ls, TMR, ESYNC, XSYNCLE_MASK): New. (PPCVEC2, PPCTMR, E6500): New short names. (powerpc_opcodes): Add vabsdub, vabsduh, vabsduw, dni, mvidsplt, mviwsplt, icblq., mftmr, mttmr, dcblq., miso, lvexbx, lvexhx, lvexwx, stvexbx, stvexhx, stvexwx, lvepx, lvepxl, stvepx, stvepxl, lvtrx, lvtrxl, lvtlx, lvtlxl, stvfrx, stvfrxl, stvflx, stvflxl, lvswx, lvswxl, stvswx, stvswxl, lvsm mnemonics. Accept LS, ESYNC optional operands on sync instruction for E6500 target. bfd/ * archures.c: Add bfd_mach_ppc_e5500 and bfd_mach_ppc_e6500. * bfd-in2.h: Regenerate. * cpu-powerpc.c (bfd_powerpc_archs): Add entryies for bfd_mach_ppc_e5500 and bfd_mach_ppc_e6500. gas/ * config/tc-ppc.c (md_show_usage): Document -me5500 and -me6500. (ppc_handle_align): Add termination nop opcode for e500mc family. * doc/as.texinfo: Document options -me5500 and -me6500. * doc/c-ppc.texi: Likewise. gas/testsuite/ * gas/ppc/e500mc64_nop.s: New test case for e500mc family termination nops. * gas/ppc/e500mc64_nop.d: Likewise. * gas/ppc/e5500_nop.s: Likewise. * gas/ppc/e5500_nop.d: Likewise. * gas/ppc/e6500_nop.s: Likewise. * gas/ppc/e6500_nop.d: Likewise. * gas/ppc/e6500.s: New. * gas/ppc/e6500.d: Likewise. * gas/ppc/ppc.exp: Run e6500, e500mc64_nop, e5500_nop, and e6500_nop. commit 60e1bf3dd24d0508103040a45f52b9d88bab6550 Author: Alan Modra Date: Fri Mar 9 23:00:05 2012 +0000 daily update commit 16de39cc0e44489e0b80b7fc93444c5c77fc0ea4 Author: Jeff Johnston Date: Fri Mar 9 20:31:34 2012 +0000 2012-03-09 Jeff Johnston * COPYING.NEWLIB: Modify DJ Delorie license to include modification rights in clause as permitted by DJ Delorie. * COPYING.LIBGLOSS: Ditto. commit 7f6229d8b64e9060cfa3206cab68ed3f9fefcc8c Author: Tom Tromey Date: Fri Mar 9 20:17:31 2012 +0000 * dwarf2read.c (struct dwarf2_cu) : New fields. (producer_is_gxx_lt_4_6): Use and update producer cache fields. commit 8559a0fdd0020188eb848d4b3f7142024f8750e8 Author: Tom Tromey Date: Fri Mar 9 20:06:16 2012 +0000 * dwarf2read.c (dwarf2_attr): Avoid tail-recursive call. commit 4ffa113c3d4c45075d81bcfb833bd4c2f2aa5cb0 Author: Jeff Johnston Date: Fri Mar 9 19:38:10 2012 +0000 2012-03-09 Jeff Johnston * COPYING.NEWLIB: Remove two unused licenses. commit fcd357cf29d8819fc89fd527b7d167d5fe61e9f6 Author: H.J. Lu Date: Fri Mar 9 16:28:35 2012 +0000 Restore R_386_IRELATIVE and R_X86_64_IRELATIVE bfd/ 2012-03-09 H.J. Lu PR ld/13817 * bfd/elf32-i386.c (elf_i386_relocate_section): Restore R_386_IRELATIVE. * * elf64-x86-64.c (elf_x86_64_relocate_section): Restore R_X86_64_IRELATIVE. ld/testsuite/ 2012-03-09 H.J. Lu PR ld/13817 * ld-i386/pr13302.d: Updated. * ld-x86-64/pr13082-5b.d: Likewise. * ld-x86-64/pr13082-6a.d: Likewise. * ld-x86-64/pr13082-6b.d: Likewise. commit 0a6318044dba8762ff97f8b6085f3d7caa0c8962 Author: Joel Brobecker Date: Fri Mar 9 13:44:51 2012 +0000 Fix a couple of ChangeLog entries. commit fa5fe0b2994c6723e73aa56d22ea87f849a9ec91 Author: Keith Seitz Date: Fri Mar 9 04:38:52 2012 +0000 * lib/gdb.exp (gdb_get_line_number): Throw an error instead of returning -1. * gdb.base/break.exp: Remove unused variable bp_location5. * gdb.base/hbreak2.exp: Likewise. * gdb.base/sepdebug.exp: Likewise. commit fa17be37489e4854a07cf5fb67c223aa47a3b64c Author: qiyao Date: Fri Mar 9 03:47:15 2012 +0000 2012-03-08 Yao Qi Pedro Alves Fix PR server/13392. * linux-x86-low.c (amd64_install_fast_tracepoint_jump_pad): Check offset of JMP insn. * tracepoint.c (remove_tracepoint): New. (cmd_qtdp): Call remove_tracepoint when failed to install. 2012-03-08 Yao Qi Pedro Alves Fix PR server/13392. * gdb.trace/change-loc.exp (tracepoint_change_loc_1): Remove kfail. (tracepoint_change_loc_2): Remove kfail. Return if failed to download tracepoints. * gdb.trace/pending.exp (pending_tracepoint_works): Likewise. (pending_tracepoint_resolved_during_trace): Likewise. (pending_tracepoint_installed_during_trace): Likewise. (pending_tracepoint_with_action_resolved): Likewise. commit a0cb7c7110404c8e9da6d4a556d5145b762675d2 Author: Joel Brobecker Date: Fri Mar 9 00:31:14 2012 +0000 Add missing _initialize_ravenscar_sparc prototype. This is required now that we compile GDB with -Wmissing-prototype. gdb/ChangeLog: * ravenscar-sparc-thread.c (_initialize_ravenscar_sparc): Add prototype. commit 9550653584a4a39c3ed0ab79af4292ed526f0337 Author: Joel Brobecker Date: Fri Mar 9 00:31:06 2012 +0000 Add missing _initialize_ravenscar prototype. gdb/ChangeLog: * ravenscar-thread.c (_initialize_ravenscar): Add prototype. commit 58ca445b83eb5f6732124cd5a22d60c079b01d84 Author: gdbadmin Date: Fri Mar 9 00:00:02 2012 +0000 *** empty log message *** commit 3327cadb71047e028be9dc2c8af3ea7dcbb8c760 Author: Alan Modra Date: Thu Mar 8 23:00:06 2012 +0000 daily update commit d9db1182aeb4ae633f4537f4e7289cb3827ab3f3 Author: Jan Kratochvil Date: Thu Mar 8 22:54:29 2012 +0000 gdb/ Fix -Wmissing-prototypes build. * arm-linux-nat.c (get_thread_id): Make it static. * xtensa-linux-nat.c (get_thread_id): Likewise. commit 6a6eaeb6c00d8d28ecb300c1c60766c9f16cd45c Author: Joel Brobecker Date: Thu Mar 8 22:19:53 2012 +0000 Make breakpoint condition detection trace conditional on remote_debug. gdb/gdbserver/ChangeLog: * server.c (process_point_options): If a conditional expression is found, only print a message if remote_debug is nonzero. commit df85a15f86d11bfba2a0a4cf4583c8aefdbfda1f Author: Keith Seitz Date: Thu Mar 8 22:19:48 2012 +0000 * gdb.ada/array_bounds.exp: Get breakpoint for line with "START", not "STOP". * gdb.python/py-infthread.exp: Do not continue to line marked "Break here.", which is undefined. commit b23543c9643d6a6977c1134e8ad55a17f40a9eba Author: Joel Brobecker Date: Thu Mar 8 22:19:09 2012 +0000 Revert "ax-gdb: Do not treat enums and bools as integers." This patch was checked hasn't been reviewed and has been checked in by mistake (wrong patch applied). commit c985cc781388627f3f248b5dfeeca04a2247927d Author: Joel Brobecker Date: Thu Mar 8 22:19:53 2012 +0000 Make breakpoint condition detection trace conditional on remote_debug. gdb/gdbserver/ChangeLog: * server.c (process_point_options): If a conditional expression is found, only print a message if remote_debug is nonzero. commit 7c4cb3092b65223a1ac9f1ceecf3c66ed74604f0 Author: Keith Seitz Date: Thu Mar 8 22:19:48 2012 +0000 * gdb.ada/array_bounds.exp: Get breakpoint for line with "START", not "STOP". * gdb.python/py-infthread.exp: Do not continue to line marked "Break here.", which is undefined. commit 509548bab1144810d50556a34c768e33366f34ef Author: Joel Brobecker Date: Thu Mar 8 22:19:09 2012 +0000 Revert "ax-gdb: Do not treat enums and bools as integers." This patch was checked hasn't been reviewed and has been checked in by mistake (wrong patch applied). commit 6711d8d07852274e57eeda9cb28ded36d68c2916 Author: Luis Machado Date: Thu Mar 8 21:09:17 2012 +0000 2012-03-08 Luis Machado Revert: 2012-03-03 Jan Kratochvil Implement testsuite workaround for PR breakpoints/13781. * gdb.cp/mb-templates.exp: New loop with variable $workaround. (set breakpoint condition-evaluation host): New conditional command. commit 0b2fe2ca87a1d9301e1a1892223418aa8286a518 Author: Luis Machado Date: Thu Mar 8 21:07:24 2012 +0000 2012-03-08 Luis Machado * ax-gdb.c (gen_fetch): Fail gracefully and use error instead of internal error for unknown/unsupported types. commit 30179ecad1dc16b8aa837d5c3e716c15c4451add Author: Joel Brobecker Date: Thu Mar 8 20:54:36 2012 +0000 ax-gdb: Do not treat enums and bools as integers. This patch fixes a problem when using gdb + gdbserver, and trying to break on a function when one of the (enum) parameters is equal to a certain value, and the size of that enum is 1 byte. (gdb) break mixed.adb:15 if light = green Breakpoint 2 at 0x402d5a: file mixed.adb, line 15. (gdb) cont Continuing. [Inferior 1 (process 9742) exited normally] The debugger should have stopped once when our function was call with light set to green. Here is what happens: Because we're using a recent GDBserver, GDB hands off the evaluation of the condition to GDBserver, by providing it in the Z0 packet. This is what GDB sends: $Z0,402d5a,1;X13,26000622100223ff1c16100219162022011327#cf I decoded the condition as follow: 260006 reg 6 -> push 2210 const8 0x10 -> push 02 add (stack now has 1 element equal to reg6 + 16) 23ff1c const16 0xff1c 1610 ext 16 (sign extend 16 bits) 02 add (stack now has 1 element equal to reg6 + 16 - 228) 19 ref32: Pop as addr, push 32bit value at addr. 1620 ext 32 (sign extend 32 bits) 2201 const8 0x01 13 equal 27 end The beginning of the agent expression can be explained by the address of symbol "light": (gdb) info addr light Symbol "light" is a variable at frame base reg $rbp offset 16+-228. However, the mistake is the "ext 32" operation (extend 32 bits), because our variable is *not* 32bits, only 8: (gdb) print light'size $5 = 8 But the reason why GDB decides to use a 32bit extension is because it overrides the symbol's type with a plain integer type in ax-gdb.c:gen_usual_unary... /* If the value is an enum or a bool, call it an integer. */ case TYPE_CODE_ENUM: case TYPE_CODE_BOOL: value->type = builtin_type (exp->gdbarch)->builtin_int; break; ... before calling require_rvalue. And of course, that causes the generator to generate a sizeof(int) extension of the result. One way to fix this would be to use an integer type of the correct size, but I do not understand why this is necessary. The two routines that use that information to generate the opcode down the line are gen_fetch (for a memory value), or gen_extend (for a register value). And they both have handling of enums and bools. So the fix we elected to implement was simply to remove that code. gdb/ChangeLog: * ax-gdb.c (gen_usual_unary): Remove special handling of enum and bool types. commit 614b158b34dda1c86dbb36d5b5784d0f47a83e55 Author: Jan Kratochvil Date: Thu Mar 8 19:37:04 2012 +0000 gdb/ Fix CU relative vs. absolute DIE offsets. * dwarf2loc.h (dwarf2_fetch_die_location_block): Rename parameter offset to offset_in_cu. * dwarf2read.c (process_enumeration_scope): Add CU offset to TYPE_OFFSET. (dwarf2_fetch_die_location_block): Rename parameter offset to offset_in_cu. New variable offset, add CU offset to OFFSET_IN_CU. gdb/testsuite/ Fix CU relative vs. absolute DIE offsets. * gdb.dwarf2/dw2-op-call.S: New compilation unit preceding the existing one. commit 63605861f505c8b5830856c8714491945d11a29c Author: Jan Kratochvil Date: Thu Mar 8 19:08:09 2012 +0000 gdb/ * libunwind-frame.c: Rename to ... * ia64-libunwind-tdep.c: ... here. * libunwind-frame.h: Rename to ... * ia64-libunwind-tdep.h: ... here. * Makefile.in (HFILES_NO_SRCDIR): Rename libunwind-frame.h to ia64-libunwind-tdep.h. (ALLDEPFILES): Rename libunwind-frame.c to ia64-libunwind-tdep.c. * README (--with-libunwind): Rename to ... (--with-libunwind-ia64): ... here, note it is ia64 specific now. * config.in: Regenerate. * configure: Regenerate. * configure.ac: New option --with-libunwind-ia64, make the AS_HELP_STRING ia64 specific. Deprecate option --with-libunwind. Remove AC_DEFINE for HAVE_LIBUNWIND. * ia64-libunwind-tdep.c: Make the file top comment ia64 specific. Rename libunwind-frame.h #include to ia64-libunwind-tdep.h. Rename libunwind-frame in the general comment. * ia64-libunwind-tdep.h: Make the file top comment ia64 specific. Rename symbol LIBUNWIND_FRAME_H to IA64_TDEP_LIBUNWIND_FRAME_H. Move forward declarations inside #ifndef. Rename libunwind-frame in the general comment. * ia64-tdep.c: Rename libunwind-frame.h #include to ia64-libunwind-tdep.h. (ia64_gdb2uw_regnum, ia64_uw2gdb_regnum, ia64_is_fpreg) (ia64_libunwind_descr): Rename libunwind-frame to ia64-libunwind-tdep in these function comments. * ia64-tdep.h: Rename libunwind-frame.h #include to ia64-libunwind-tdep.h. * ia64-vms-tdep.c (ia64_vms_libunwind_descr): Rename libunwind-frame to ia64-libunwind-tdep in that data comment. commit 6aa1a3d2aa879e3c90cfb7ba6f092248e9b3d14f Author: Jan Kratochvil Date: Thu Mar 8 18:13:33 2012 +0000 gdb/ * libunwind-frame.h (struct frame_unwind): New declaration. commit 85c0a34413f7fa5087a57b1f60f1b4685ed38e7f Author: Andreas Krebbel Date: Thu Mar 8 17:22:18 2012 +0000 2012-03-08 Andreas Krebbel * s390-opc.txt: Set instruction type of pku to SS_L2RDRD. 2012-03-08 Andreas Krebbel * gas/s390/esa-g5.d: Move length field to the second operand. * gas/s390/esa-g5.s: Likewise. commit 159708f077cb29db1e640f38e338cfd11f72e434 Author: Joel Brobecker Date: Thu Mar 8 16:50:13 2012 +0000 Fix thinko in help of "set breakpoint condition-evaluation". The 3 valid values for this setting are "auto", "host" and "target". The help was advertising one of them to be "gdb" instead of "host". gdb/ChangeLog: * breakpoint.c (_initialize_breakpoint): Fix error in help of "set breakpoint condition-evaluation" command. commit a6558cc6583d689bad730ea4b8b21e8902d33765 Author: Tristan Gingold Date: Thu Mar 8 14:43:21 2012 +0000 gdb/ 2012-03-08 Tristan Gingold * sparc-stub.c: Move to stubs/ * sh-stub.c: Likewise. * m68k-stub.c: Likewise. * m32r-stub.c: Likewise. * i386-stub.c: Likewise. gdb/stubs/ 2012-03-08 Tristan Gingold * sparc-stub.c: Move from .. * sh-stub.c: Likewise. * m68k-stub.c: Likewise. * m32r-stub.c: Likewise. * i386-stub.c: Likewise. commit 13e0b15bc830661c894a76c655f66ec4d7927d99 Author: Tristan Gingold Date: Thu Mar 8 14:25:27 2012 +0000 2012-03-08 Tristan Gingold * vms-lib.c (_bfd_vms_lib_write_archive_contents): Set maximum keylen according to archive kind. Set nextvbn and nextrfa lhd fields. Add comments. commit 8e8e6374c970c822860d35a1eb1d8be4520eb84c Author: Tristan Gingold Date: Thu Mar 8 14:14:52 2012 +0000 2012-03-08 Tristan Gingold * lbr.h (struct vms_lhd): Add comments. commit c18e72c42adedfa9668ba1591f3e49aeb8ea960a Author: Andreas Schwab Date: Thu Mar 8 13:37:23 2012 +0000 * m68klinux-tdep.c (m68k_linux_init_abi): Register linux_get_siginfo_type. commit 0212281f290ab420cc0d62d84eb250a7c244d469 Author: Andreas Schwab Date: Thu Mar 8 13:35:38 2012 +0000 * m68klinux-nat.c: Include "gdb_proc_service.h". (PTRACE_GET_THREAD_AREA): Define. (ps_get_thread_area): New function. commit f159f57d7af49a583b5b90211e012319b2bc114e Author: qiyao Date: Thu Mar 8 12:49:13 2012 +0000 gdb/ * remote.c (remote_get_noisy_reply): Replace `sprintf' with `xsnprintf'. (remote_query_attached): Likewise. (remote_static_tracepoint_marker_at): Likewise. (remote_set_permissions): Likewise. (remote_detach_1, extended_remote_attach_1): Likewise. (send_g_packet, remote_vkill): Likewise. (extended_remote_disable_randomization): Likewise. (remote_add_target_side_condition): Likewise. (remote_insert_breakpoint): Likewise. (remote_remove_breakpoint): Likewise. (remote_insert_watchpoint): Likewise. (remote_remove_watchpoint): Likewise. (remote_insert_hw_breakpoint): Likewise. (remote_insert_hw_breakpoint): Likewise. (remote_remove_hw_breakpoint): Likewise. (remote_download_command_source): Likewise. (remote_download_tracepoint): Likewise. (remote_download_trace_state_variable): Likewise. (remote_disable_tracepoint): Likewise. (remote_trace_set_readonly_regions): Likewise. (remote_get_tracepoint_status): Likewise. (remote_trace_find): Likewise. (remote_get_trace_state_variable_value): Likewise. (remote_set_disconnected_tracing): Likewise. (remote_set_circular_trace_buffer): Likewise. (remote_get_min_fast_tracepoint_insn_len): Likewise. (remote_use_agent): Likewise. (remote_add_target_side_condition): Add one parameter BUF_SIZE. Update callers. commit 6224d1714d7a40a72438280140619a4f7d524351 Author: Jan Kratochvil Date: Thu Mar 8 07:42:50 2012 +0000 gdb/testsuite/ Fix false FAIL on distros with relro linkage as default. * gdb.reverse/solib-precsave.exp: Try to compile the test using -Wl,-z,norelro first. commit 0abc4898f61eb02eac736d48fb8fb9d92c610067 Author: DJ Delorie Date: Thu Mar 8 00:01:18 2012 +0000 merge from gcc commit 13cd52cfd198a089b406c1c2eeef7b4556792d51 Author: gdbadmin Date: Thu Mar 8 00:00:03 2012 +0000 *** empty log message *** commit d1c19498d48c166cc5c19393c7f1d9f5123370ad Author: Alan Modra Date: Wed Mar 7 23:00:05 2012 +0000 daily update commit b70a3d51d2fe74ebae8a741b05f5b251e5808eb6 Author: Pedro Alves Date: Wed Mar 7 19:25:36 2012 +0000 2012-03-07 Pedro Alves gdb/doc/ * gdb.texinfo (General Query Packets): Document new QProgramSignals packet. * gdb.texinfo (Remote configuration): Mention "program-signals-packet". gdb/gdbserver/ * linux-low.c (get_detach_signal): New. (linux_detach_one_lwp): Get rid of a pending SIGSTOP with SIGCONT. Pass on pending signals to PTRACE_DETACH. Check the result of the ptrace call. * server.c (program_signals, program_signals_p): New. (handle_general_set): Handle QProgramSignals. * server.h (program_signals, program_signals_p): Declare. gdb/ * NEWS: Mention QProgramSignals. * inferior.h (update_signals_program_target): Declare. * infrun.c: (update_signals_program_target): New. (handle_command): Update the target of the new program signals array changes. * remote.c (PACKET_QProgramSignals): New enum. (last_program_signals_packet): New global. (remote_program_signals): New. (remote_start_remote): Update the target with the program signals list. (remote_protocol_features): Add entry for QPassSignals. (remote_open_1): Free anc clear last_program_signals_packet. (init_remote_ops): Install remote_program_signals. * target.c (update_current_target): Adjust. (target_program_signals): New. * target.h (struct target_ops) : New field. (target_program_signals): Declare. commit 0f71212eb8ed33023680ea1c4948cc7af44e969a Author: Pedro Alves Date: Wed Mar 7 19:17:34 2012 +0000 2012-03-07 Pedro Alves * NEWS: Add subtitle for new z0/z1 conditional breakpoint extensions. ----------------------------------------------------------------------- Summary of changes: COPYING.LIBGLOSS | 2 +- COPYING.NEWLIB | 15 +- ChangeLog | 10 + bfd/ChangeLog | 68 ++ bfd/archures.c | 6 +- bfd/bfd-in2.h | 29 +- bfd/cpu-powerpc.c | 34 +- bfd/elf-m10300.c | 883 ++++++++++++++++++-- bfd/elf32-i386.c | 17 +- bfd/elf64-x86-64.c | 14 +- bfd/elfxx-sparc.c | 6 +- bfd/libbfd.h | 13 +- bfd/reloc.c | 40 +- bfd/version.h | 2 +- bfd/vms-lib.c | 16 +- gdb/ChangeLog | 264 ++++++- gdb/MAINTAINERS | 1 + gdb/Makefile.in | 4 +- gdb/NEWS | 7 + gdb/README | 8 +- gdb/amd64bsd-nat.c | 1 + gdb/arm-linux-nat.c | 2 +- gdb/ax-gdb.c | 11 +- gdb/breakpoint.c | 2 +- gdb/common/linux-osdata.c | 2 + gdb/config.in | 3 - gdb/configure | 62 +- gdb/configure.ac | 54 +- gdb/doc/ChangeLog | 7 + gdb/doc/gdb.texinfo | 46 + gdb/dwarf2loc.h | 2 +- gdb/dwarf2read.c | 71 +- gdb/gdbserver/ChangeLog | 25 + gdb/gdbserver/linux-low.c | 118 +++- gdb/gdbserver/linux-x86-low.c | 27 +- gdb/gdbserver/server.c | 36 +- gdb/gdbserver/server.h | 2 + gdb/gdbserver/tracepoint.c | 24 + gdb/gregset.h | 4 + gdb/i387-tdep.c | 33 +- gdb/{libunwind-frame.c => ia64-libunwind-tdep.c} | 32 +- gdb/{libunwind-frame.h => ia64-libunwind-tdep.h} | 19 +- gdb/ia64-tdep.c | 18 +- gdb/ia64-tdep.h | 2 +- gdb/ia64-vms-tdep.c | 4 +- gdb/inferior.h | 2 + gdb/infrun.c | 10 + gdb/jv-valprint.c | 5 +- gdb/linux-nat.c | 67 +-- gdb/linux-nat.h | 3 - gdb/linux-thread-db.c | 3 +- gdb/m68klinux-nat.c | 31 +- gdb/m68klinux-tdep.c | 2 + gdb/mi/mi-cmd-break.c | 8 +- gdb/mi/mi-cmd-disas.c | 31 +- gdb/mi/mi-cmd-env.c | 16 +- gdb/mi/mi-cmd-file.c | 23 +- gdb/mi/mi-cmd-stack.c | 46 +- gdb/mi/mi-cmd-target.c | 18 +- gdb/mi/mi-cmd-var.c | 98 +-- gdb/mi/mi-cmds.c | 22 +- gdb/mi/mi-cmds.h | 9 +- gdb/mi/mi-console.c | 37 +- gdb/mi/mi-getopt.c | 14 +- gdb/mi/mi-getopt.h | 34 +- gdb/mi/mi-interp.c | 130 ++-- gdb/mi/mi-main.c | 304 ++++---- gdb/mi/mi-out.c | 92 +-- gdb/mi/mi-parse.c | 48 +- gdb/mi/mi-parse.h | 2 +- gdb/mi/mi-symbol-cmds.c | 14 +- gdb/proc-service.c | 16 +- gdb/ravenscar-sparc-thread.c | 3 + gdb/ravenscar-thread.c | 3 + gdb/remote.c | 230 ++++-- gdb/s390-nat.c | 1 + gdb/sh-tdep.c | 46 +- gdb/stubs/ChangeLog | 8 + gdb/{ => stubs}/i386-stub.c | 0 gdb/{ => stubs}/m32r-stub.c | 0 gdb/{ => stubs}/m68k-stub.c | 0 gdb/{ => stubs}/sh-stub.c | 0 gdb/{ => stubs}/sparc-stub.c | 0 gdb/target.c | 31 + gdb/target.h | 20 + gdb/testsuite/ChangeLog | 73 ++ gdb/testsuite/gdb.ada/array_bounds.exp | 2 +- gdb/testsuite/gdb.ada/bp_enum_homonym.exp | 52 ++ gdb/testsuite/gdb.ada/bp_enum_homonym/p.adb | 26 + gdb/testsuite/gdb.ada/bp_enum_homonym/pck.adb | 28 + gdb/testsuite/gdb.ada/bp_enum_homonym/pck.ads | 23 + .../gdb.ada/{array_bounds.exp => bp_on_var.exp} | 37 +- gdb/testsuite/gdb.ada/bp_on_var/foo.adb | 20 + gdb/testsuite/gdb.ada/bp_on_var/pck.adb | 27 + gdb/testsuite/gdb.ada/bp_on_var/pck.ads | 20 + gdb/testsuite/gdb.ada/mi_task_arg.exp | 3 + gdb/testsuite/gdb.ada/operator_bp.exp | 3 + gdb/testsuite/gdb.base/break.exp | 1 - gdb/testsuite/gdb.base/hbreak2.exp | 1 - gdb/testsuite/gdb.base/sepdebug.exp | 1 - gdb/testsuite/gdb.cp/mb-templates.exp | 37 +- gdb/testsuite/gdb.dwarf2/dw2-op-call.S | 17 + gdb/testsuite/gdb.java/jprint.java | 1 + gdb/testsuite/gdb.python/py-infthread.exp | 2 - gdb/testsuite/gdb.reverse/solib-precsave.exp | 8 +- gdb/testsuite/gdb.trace/change-loc.exp | 71 ++- gdb/testsuite/gdb.trace/ftrace.exp | 4 +- gdb/testsuite/gdb.trace/pending.exp | 90 ++- gdb/testsuite/lib/gdb.exp | 15 +- gdb/value.c | 16 +- gdb/version.in | 2 +- gdb/xtensa-linux-nat.c | 2 +- include/ChangeLog | 6 + include/elf/ChangeLog | 7 + include/elf/mn10300.h | 9 + include/opcode/ChangeLog | 4 + include/opcode/ppc.h | 11 +- include/vms/ChangeLog | 4 + include/vms/lbr.h | 3 + libiberty/ChangeLog | 5 + libiberty/cp-demangle.c | 8 +- libiberty/testsuite/demangle-expected | 3 + opcodes/ChangeLog | 16 + opcodes/ppc-dis.c | 14 +- opcodes/ppc-opc.c | 112 +++- opcodes/s390-opc.txt | 2 +- 126 files changed, 3205 insertions(+), 1054 deletions(-) rename gdb/{libunwind-frame.c => ia64-libunwind-tdep.c} (94%) rename gdb/{libunwind-frame.h => ia64-libunwind-tdep.h} (85%) rename gdb/{ => stubs}/i386-stub.c (100%) rename gdb/{ => stubs}/m32r-stub.c (100%) rename gdb/{ => stubs}/m68k-stub.c (100%) rename gdb/{ => stubs}/sh-stub.c (100%) rename gdb/{ => stubs}/sparc-stub.c (100%) create mode 100644 gdb/testsuite/gdb.ada/bp_enum_homonym.exp create mode 100644 gdb/testsuite/gdb.ada/bp_enum_homonym/p.adb create mode 100644 gdb/testsuite/gdb.ada/bp_enum_homonym/pck.adb create mode 100644 gdb/testsuite/gdb.ada/bp_enum_homonym/pck.ads copy gdb/testsuite/gdb.ada/{array_bounds.exp => bp_on_var.exp} (55%) create mode 100644 gdb/testsuite/gdb.ada/bp_on_var/foo.adb create mode 100644 gdb/testsuite/gdb.ada/bp_on_var/pck.adb create mode 100644 gdb/testsuite/gdb.ada/bp_on_var/pck.ads First 500 lines of diff: diff --git a/COPYING.LIBGLOSS b/COPYING.LIBGLOSS index ed6c0a0..0e1c65a 100644 --- a/COPYING.LIBGLOSS +++ b/COPYING.LIBGLOSS @@ -51,7 +51,7 @@ OF SUCH DAMAGE. Copyright (C) 1993 DJ Delorie All rights reserved. -Redistribution and use in source and binary forms is permitted +Redistribution, modification, and use in source and binary forms is permitted provided that the above copyright notice and following paragraph are duplicated in all such forms. diff --git a/COPYING.NEWLIB b/COPYING.NEWLIB index d3a767a..6849eb5 100644 --- a/COPYING.NEWLIB +++ b/COPYING.NEWLIB @@ -117,18 +117,9 @@ Mail Stop 573 Austin, TX 78741 800-292-9263 -(5) C.W. Sandmann +(5) -Copyright (C) 1993 C.W. Sandmann - -This file may be freely distributed as long as the author's name remains. - -(6) Eric Backus - -(C) Copyright 1992 Eric Backus - -This software may be used freely so long as this copyright notice is -left intact. There is no warrantee on this software. +(6) (7) Sun Microsystems @@ -416,7 +407,7 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Copyright (C) 1991 DJ Delorie All rights reserved. -Redistribution and use in source and binary forms is permitted +Redistribution, modification, and use in source and binary forms is permitted provided that the above copyright notice and following paragraph are duplicated in all such forms. diff --git a/ChangeLog b/ChangeLog index 572f968..a7a08e8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2012-03-09 Jeff Johnston + + * COPYING.NEWLIB: Modify DJ Delorie license to include + modification rights in clause as permitted by DJ Delorie. + * COPYING.LIBGLOSS: Ditto. + +2012-03-09 Jeff Johnston + + * COPYING.NEWLIB: Remove two unused licenses. + 2012-03-05 Tristan Gingold * configure.ac: Enable gdb and readline for ia64*-*-*vms*. diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 019a05a..a65e854 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,71 @@ +2012-03-10 Edmar Wienskoski + + * archures.c: Add bfd_mach_ppc_e5500 and bfd_mach_ppc_e6500. + * bfd-in2.h: Regenerate. + * cpu-powerpc.c (bfd_powerpc_archs): Add entries for + bfd_mach_ppc_e5500 and bfd_mach_ppc_e6500. + +2012-03-09 H.J. Lu + + PR ld/13817 + * bfd/elf32-i386.c (elf_i386_relocate_section): Restore + R_386_IRELATIVE. + + * * elf64-x86-64.c (elf_x86_64_relocate_section): Restore + R_X86_64_IRELATIVE. + +2012-03-08 Tristan Gingold + + * vms-lib.c (_bfd_vms_lib_write_archive_contents): Set maximum + keylen according to archive kind. Set nextvbn and nextrfa lhd + fields. Add comments. + +2012-03-07 Nick Clifton + + * elf-m10300.c (elf32_mn10300_link_hash_entry): Add tls_type + field. + (elf32_mn10300_link_hash_table): Add tls_ldm_got entry; + (elf_mn10300_tdata): Define. + (elf_mn10300_local_got_tls_type): Define. + (elf_mn10300_howto_table): Add entries for R_MN10300_TLS_GD, + R_MN10300_TLS_LD, R_MN10300_TLS_LDO, R_MN10300_TLS_GOTIE, + R_MN10300_TLS_IE, R_MN10300_TLS_LE, R_MN10300_TLS_DPTMOD, + R_MN10300_TLS_DTPOFF, R_MN10300_TLS_TPOFF relocs. + (mn10300_reloc_map): Likewise. + (elf_mn10300_tls_transition): New function. + (dtpoff, tpoff, mn10300_do_tls_transition): New functions. + (mn10300_elf_check_relocs): Add TLS support. + (mn10300_elf_final_link_relocate): Likewise. + (mn10300_elf_relocate_section): Likewise. + (mn10300_elf_relax_section): Likewise. + (elf32_mn10300_link_hash_newfunc): Initialise new field. + (_bfd_mn10300_copy_indirect_symbol): New function. + (elf32_mn10300_link_hash_table_create): Initialise new fields. + (_bfd_mn10300_elf_size_dynamic_sections): Add TLS support. + (_bfd_mn10300_elf_finish_dynamic_symbol): Likewise. + (_bfd_mn10300_elf_reloc_type_class): Allocate an + elf_mn10300_obj_tdata structure. + (elf_backend_copy_indirect_symbol): Define. + * reloc.c (BFD_MN10300_TLS_GD, BFD_MN10300_TLS_LD, + BFD_MN10300_TLS_LDO, BFD_MN10300_TLS_GOTIE, BFD_MN10300_TLS_IE, + BFD_MN10300_TLS_LE, BFD_MN10300_TLS_DPTMOD, + BFD_MN10300_TLS_DTPOFF, BFD_MN10300_TLS_TPOFF): New relocations. + (BFD_RELOC_MN10300_32_PCREL, BFD_RELOC_MN10300_16_PCREL): Move to + alongside other MN10300 relocations. + * bfd-in2.h: Regenerate. + * libbfd.h: Regenerate. + +2012-03-06 Jakub Jelinek + + * elf64-x86-64.c (elf_x86_64_relocate_section): For R_X86_64_RELATIVE + set relocate to TRUE. + +2012-03-05 Rainer Orth + + PR ld/12152 + * elfxx-sparc.c (_bfd_sparc_elf_relocate_section): Also ignore + overflows for R_SPARC_UA32 in .stab sections. + 2012-03-01 Alan Modra * elfxx-tilegx.c (tilegx_elf_relocate_section): Silence bogus warning. diff --git a/bfd/archures.c b/bfd/archures.c index 92c4867..d38d806 100644 --- a/bfd/archures.c +++ b/bfd/archures.c @@ -1,7 +1,7 @@ /* BFD library support routines for architectures. Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 - Free Software Foundation, Inc. + 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, + 2012 Free Software Foundation, Inc. Hacked by John Gilmore and Steve Chamberlain of Cygnus Support. This file is part of BFD, the Binary File Descriptor library. @@ -241,6 +241,8 @@ DESCRIPTION .#define bfd_mach_ppc_e500 500 .#define bfd_mach_ppc_e500mc 5001 .#define bfd_mach_ppc_e500mc64 5005 +.#define bfd_mach_ppc_e5500 5006 +.#define bfd_mach_ppc_e6500 5007 .#define bfd_mach_ppc_titan 83 . bfd_arch_rs6000, {* IBM RS/6000 *} .#define bfd_mach_rs6k 6000 diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index 9c77fed..bea3a05 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -1947,6 +1947,8 @@ enum bfd_architecture #define bfd_mach_ppc_e500 500 #define bfd_mach_ppc_e500mc 5001 #define bfd_mach_ppc_e500mc64 5005 +#define bfd_mach_ppc_e5500 5006 +#define bfd_mach_ppc_e6500 5007 #define bfd_mach_ppc_titan 83 bfd_arch_rs6000, /* IBM RS/6000 */ #define bfd_mach_rs6k 6000 @@ -2963,6 +2965,25 @@ be honoured at the offset's location, regardless of linker relaxation. */ BFD_RELOC_MN10300_ALIGN, +/* Various TLS-related relocations. */ + BFD_RELOC_MN10300_TLS_GD, + BFD_RELOC_MN10300_TLS_LD, + BFD_RELOC_MN10300_TLS_LDO, + BFD_RELOC_MN10300_TLS_GOTIE, + BFD_RELOC_MN10300_TLS_IE, + BFD_RELOC_MN10300_TLS_LE, + BFD_RELOC_MN10300_TLS_DTPMOD, + BFD_RELOC_MN10300_TLS_DTPOFF, + BFD_RELOC_MN10300_TLS_TPOFF, + +/* This is a 32bit pcrel reloc for the mn10300, offset by two bytes in the +instruction. */ + BFD_RELOC_MN10300_32_PCREL, + +/* This is a 16bit pcrel reloc for the mn10300, offset by two bytes in the +instruction. */ + BFD_RELOC_MN10300_16_PCREL, + /* i386/elf relocations */ BFD_RELOC_386_GOT32, @@ -3798,14 +3819,6 @@ instructions. */ /* start data in text. */ BFD_RELOC_V850_DATA, -/* This is a 32bit pcrel reloc for the mn10300, offset by two bytes in the -instruction. */ - BFD_RELOC_MN10300_32_PCREL, - -/* This is a 16bit pcrel reloc for the mn10300, offset by two bytes in the -instruction. */ - BFD_RELOC_MN10300_16_PCREL, - /* This is a 8bit DP reloc for the tms320c30, where the most significant 8 bits of a 24 bit word are placed into the least significant 8 bits of the opcode. */ diff --git a/bfd/cpu-powerpc.c b/bfd/cpu-powerpc.c index 6a652b2..19604c3 100644 --- a/bfd/cpu-powerpc.c +++ b/bfd/cpu-powerpc.c @@ -1,6 +1,6 @@ /* BFD PowerPC CPU definition - Copyright 1994, 1995, 1996, 2000, 2001, 2002, 2003, 2005, 2007, 2008, 2010 - Free Software Foundation, Inc. + Copyright 1994, 1995, 1996, 2000, 2001, 2002, 2003, 2005, 2007, 2008, + 2010, 2012 Free Software Foundation, Inc. Contributed by Ian Lance Taylor, Cygnus Support. This file is part of BFD, the Binary File Descriptor library. @@ -373,6 +373,36 @@ const bfd_arch_info_type bfd_powerpc_archs[] = powerpc_compatible, bfd_default_scan, bfd_arch_default_fill, + &bfd_powerpc_archs[19] + }, + { + 64, /* 64 bits in a word */ + 64, /* 64 bits in an address */ + 8, /* 8 bits in a byte */ + bfd_arch_powerpc, + bfd_mach_ppc_e5500, + "powerpc", + "powerpc:e5500", + 3, + FALSE, /* not the default */ + powerpc_compatible, + bfd_default_scan, + bfd_arch_default_fill, + &bfd_powerpc_archs[20] + }, + { + 64, /* 64 bits in a word */ + 64, /* 64 bits in an address */ + 8, /* 8 bits in a byte */ + bfd_arch_powerpc, + bfd_mach_ppc_e6500, + "powerpc", + "powerpc:e6500", + 3, + FALSE, /* not the default */ + powerpc_compatible, + bfd_default_scan, + bfd_arch_default_fill, 0 } }; diff --git a/bfd/elf-m10300.c b/bfd/elf-m10300.c index fa33b4a..d5e183d 100644 --- a/bfd/elf-m10300.c +++ b/bfd/elf-m10300.c @@ -69,6 +69,14 @@ struct elf32_mn10300_link_hash_entry /* Calculated value. */ bfd_vma value; + +#define GOT_UNKNOWN 0 +#define GOT_NORMAL 1 +#define GOT_TLS_GD 2 +#define GOT_TLS_LD 3 +#define GOT_TLS_IE 4 + /* Used to distinguish GOT entries for TLS types from normal GOT entries. */ + unsigned char tls_type; }; /* We derive a hash table from the main elf linker hash table so @@ -87,8 +95,31 @@ struct elf32_mn10300_link_hash_table /* Random linker state flags. */ #define MN10300_HASH_ENTRIES_INITIALIZED 0x1 char flags; + struct + { + bfd_signed_vma refcount; + bfd_vma offset; + char got_allocated; + char rel_emitted; + } tls_ldm_got; }; +#define elf_mn10300_hash_entry(ent) ((struct elf32_mn10300_link_hash_entry *)(ent)) + +struct elf_mn10300_obj_tdata +{ + struct elf_obj_tdata root; + + /* tls_type for each local got entry. */ + char * local_got_tls_type; +}; + +#define elf_mn10300_tdata(abfd) \ + ((struct elf_mn10300_obj_tdata *) (abfd)->tdata.any) + +#define elf_mn10300_local_got_tls_type(abfd) \ + (elf_mn10300_tdata (abfd)->local_got_tls_type) + #ifndef streq #define streq(a, b) (strcmp ((a),(b)) == 0) #endif @@ -448,15 +479,131 @@ static reloc_howto_type elf_mn10300_howto_table[] = 0xffffffff, /* dst_mask */ FALSE), /* pcrel_offset */ - EMPTY_HOWTO (24), - EMPTY_HOWTO (25), - EMPTY_HOWTO (26), - EMPTY_HOWTO (27), - EMPTY_HOWTO (28), - EMPTY_HOWTO (29), - EMPTY_HOWTO (30), - EMPTY_HOWTO (31), - EMPTY_HOWTO (32), + HOWTO (R_MN10300_TLS_GD, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 32, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_bitfield, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* */ + "R_MN10300_TLS_GD", /* name */ + FALSE, /* partial_inplace */ + 0xffffffff, /* src_mask */ + 0xffffffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + HOWTO (R_MN10300_TLS_LD, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 32, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_bitfield, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* */ + "R_MN10300_TLS_LD", /* name */ + FALSE, /* partial_inplace */ + 0xffffffff, /* src_mask */ + 0xffffffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + HOWTO (R_MN10300_TLS_LDO, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 32, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_bitfield, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* */ + "R_MN10300_TLS_LDO", /* name */ + FALSE, /* partial_inplace */ + 0xffffffff, /* src_mask */ + 0xffffffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + HOWTO (R_MN10300_TLS_GOTIE, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 32, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_bitfield, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* */ + "R_MN10300_TLS_GOTIE", /* name */ + FALSE, /* partial_inplace */ + 0xffffffff, /* src_mask */ + 0xffffffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + HOWTO (R_MN10300_TLS_IE, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 32, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_bitfield, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* */ + "R_MN10300_TLS_IE", /* name */ + FALSE, /* partial_inplace */ + 0xffffffff, /* src_mask */ + 0xffffffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + HOWTO (R_MN10300_TLS_LE, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 32, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_bitfield, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* */ + "R_MN10300_TLS_LE", /* name */ + FALSE, /* partial_inplace */ + 0xffffffff, /* src_mask */ + 0xffffffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + HOWTO (R_MN10300_TLS_DTPMOD, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 32, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_bitfield, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* */ + "R_MN10300_TLS_DTPMOD", /* name */ + FALSE, /* partial_inplace */ + 0xffffffff, /* src_mask */ + 0xffffffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + HOWTO (R_MN10300_TLS_DTPOFF, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 32, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_bitfield, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* */ + "R_MN10300_TLS_DTPOFF", /* name */ + FALSE, /* partial_inplace */ + 0xffffffff, /* src_mask */ + 0xffffffff, /* dst_mask */ + FALSE), /* pcrel_offset */ + + HOWTO (R_MN10300_TLS_TPOFF, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 32, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_bitfield, /* complain_on_overflow */ + bfd_elf_generic_reloc, /* */ + "R_MN10300_TLS_TPOFF", /* name */ + FALSE, /* partial_inplace */ + 0xffffffff, /* src_mask */ + 0xffffffff, /* dst_mask */ + FALSE), /* pcrel_offset */ HOWTO (R_MN10300_SYM_DIFF, /* type */ 0, /* rightshift */ @@ -519,6 +666,15 @@ static const struct mn10300_reloc_map mn10300_reloc_map[] = { BFD_RELOC_MN10300_GLOB_DAT, R_MN10300_GLOB_DAT }, { BFD_RELOC_MN10300_JMP_SLOT, R_MN10300_JMP_SLOT }, { BFD_RELOC_MN10300_RELATIVE, R_MN10300_RELATIVE }, + { BFD_RELOC_MN10300_TLS_GD, R_MN10300_TLS_GD }, + { BFD_RELOC_MN10300_TLS_LD, R_MN10300_TLS_LD }, + { BFD_RELOC_MN10300_TLS_LDO, R_MN10300_TLS_LDO }, + { BFD_RELOC_MN10300_TLS_GOTIE, R_MN10300_TLS_GOTIE }, + { BFD_RELOC_MN10300_TLS_IE, R_MN10300_TLS_IE }, + { BFD_RELOC_MN10300_TLS_LE, R_MN10300_TLS_LE }, + { BFD_RELOC_MN10300_TLS_DTPMOD, R_MN10300_TLS_DTPMOD }, + { BFD_RELOC_MN10300_TLS_DTPOFF, R_MN10300_TLS_DTPOFF }, + { BFD_RELOC_MN10300_TLS_TPOFF, R_MN10300_TLS_TPOFF }, { BFD_RELOC_MN10300_SYM_DIFF, R_MN10300_SYM_DIFF }, { BFD_RELOC_MN10300_ALIGN, R_MN10300_ALIGN } }; @@ -650,6 +806,223 @@ mn10300_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED, cache_ptr->howto = elf_mn10300_howto_table + r_type; } +static int +elf_mn10300_tls_transition (struct bfd_link_info * info, + int r_type, + struct elf_link_hash_entry * h, + asection * sec, + bfd_boolean counting) +{ + bfd_boolean is_local; + + if (r_type == R_MN10300_TLS_GD + && h != NULL + && elf_mn10300_hash_entry (h)->tls_type == GOT_TLS_IE) + return R_MN10300_TLS_GOTIE; + + if (info->shared) + return r_type; + + if (! (sec->flags & SEC_CODE)) + return r_type; + hooks/post-receive -- Repository for Project Archer.