From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30273 invoked by alias); 13 Jun 2012 13:52:26 -0000 Mailing-List: contact archer-commits-help@sourceware.org; run by ezmlm Sender: Precedence: bulk List-Post: List-Help: List-Subscribe: Received: (qmail 30175 invoked by uid 9514); 13 Jun 2012 13:52:22 -0000 Date: Wed, 13 Jun 2012 13:52:00 -0000 Message-ID: <20120613135221.30160.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: 564a66e215d4e982691c0b6e8eae5576ca229df6 X-Git-Newrev: 565c7df6b7f0146584f71bea3ee7ee57e0a6fb3a X-SW-Source: 2012-q2/txt/msg00054.txt.bz2 List-Id: The branch, archer-pmuldoon-python-backtrace has been updated via 565c7df6b7f0146584f71bea3ee7ee57e0a6fb3a (commit) via e02f3d0d618dd79d0a72216b421f4fb9d91db72c (commit) via ccb430de2b34ed7414e294a9620acfc0b302ac41 (commit) via 1167d4a77ade4a8c74e75c91e25e09a867256615 (commit) via cb5937a3537be55826abdad41ebebb569f61985a (commit) via 5f0fc9624dc5d0915277364e03dc80143ac963bc (commit) via 272e5bebaa02939e0c2bef857d1ef3ea89f7ddf8 (commit) via de845dddb417549a28c4f4e5712da077376cdda2 (commit) via 6f75c2e24bb51b9d96e7a64f8cf4d2ca4ed7c39f (commit) via 6fee2d785da75a6e50633252f0080f2654f8c1a0 (commit) via e82993f76b1b0332db48785fb3f84aa53d8e9265 (commit) via c02f6f29ca5977ffd83d0193c6e508cf7d5a33b3 (commit) via a5a29dc08d74b30a5111ff66a9468e11ac8d9f82 (commit) via 0a4f31a180a160179bd39f5b04ac341be28b0f0c (commit) via d61da2bf7b1840627cebfadc96ef9b784e0b7666 (commit) via 3375ec4bf84bec578101fdbd098c93d0e7ae46a7 (commit) via 891661e8e5978859393b3c0518d256ccea9ef41d (commit) via 877dce5b0d75d33cf93a4cda88a73cf828be5875 (commit) via f1bef71ff8089217ade0f121c05471b0175701cd (commit) via 2131d06f046e45da3d79e3bef0480cc930c46438 (commit) via ea858bd2062ac5f09f673757bc4be571a819744f (commit) via dfa372b5647dc625aba540d12af26ce210849fa7 (commit) via 5cfe05bdd463e19a2bdcb53e14bc5b81db69a3df (commit) via 0472f4e84f43475b667db3a50a921601c1c27fd5 (commit) via ebceccdf9f20091dc910840880552156c34644e1 (commit) via 81651b1f54338cccb1bc7916fa4508cbf772e666 (commit) via 177b7c4591b40a1f2c235b91bfb1efc4afb370eb (commit) via a507ed13116a97f0a0b5a863423163f3526651aa (commit) via e2dc83362244d8a230b15b9306074604bd81ba2c (commit) via c3155ec2b1db0b1e520053a74cfdfd03d8bd87d2 (commit) via f219d2c3048ea000a35ed5821d93affad77d9b4a (commit) via 7c97ba1d40079f7740f28fd1cdac8cf5316b6032 (commit) via 56913aaeefb1b2124b6c722062345c739a9f65c2 (commit) via b4e956505863579c948fb473991938d154d6a965 (commit) via 8e02051040b91d3b28b76c4fa38f44170f43633d (commit) via ef31beefd3e68517ecb469d2e6cc541c55d3d7f7 (commit) via 11c3fab6d1bcb8d6bafb6906ab93ad1e053d39d4 (commit) via a503876fcb06324578eac282f61ed5be601b65c4 (commit) via 092881b3e0d6e992d12f46f8fd251bbb868598ea (commit) via 56a901143f1fa4c62f904c540041bd0000678c01 (commit) via 77c56fc5d124d50915b4570c5393285fe229600d (commit) via a3a9b8a426a7fc4e4611b1c04b0d0d84d6e2331c (commit) via 3455ebdc4f4be498e4d6f1ac0fb5d8c5c46263a6 (commit) via 279de488702354a225e200ad173885a9b132a532 (commit) via 30bbb2367990da572fe31c7b7143405a80181274 (commit) via 591efec2cd9ede5811cd65f294b8d4588996b146 (commit) via 8f8cde70f6ccb6221854875c575ec21a6eac0e3d (commit) via cad7c7e80b9f67629112e584f61ae406feec64ce (commit) via eb26c20f67b40c1e27f19af5302e338811749839 (commit) via effec69ad8acf45f8a064058b63c5d2f3794d9d9 (commit) via d07e5372dc1865d16f4d6891dfab7b60e4cb871b (commit) via f53f5a165f9c6dd8c2878e792227bd301164ac87 (commit) via 211625aed6f45af30fbaeb0f6eaaba9cca31c220 (commit) via 9d9638d87eb50724ab4662aacb5c7ca92448cbcc (commit) via 65dac2bad3a1d990c60fc5a954edeef393743bd0 (commit) via fd726e1c082f80fac0d29bbe2bc2396b069dd7fa (commit) via 3c27b5cc91e153d865e74dbf99d2a22ee11f68dd (commit) via 8e33005ad1dbde9183d09547d4aaf1943f4175ce (commit) from 564a66e215d4e982691c0b6e8eae5576ca229df6 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 565c7df6b7f0146584f71bea3ee7ee57e0a6fb3a Merge: 564a66e e02f3d0 Author: Phil Muldoon Date: Wed Jun 13 14:51:59 2012 +0100 Merge remote-tracking branch 'gdb/master' into archer-pmuldoon-python-backtrace commit e02f3d0d618dd79d0a72216b421f4fb9d91db72c Author: Pedro Alves Date: Wed Jun 13 11:06:50 2012 +0000 2012-06-13 Pedro Alves Partial revert of previous change. * serial.c (scb_base): New global. (serial_for_fd): New. (serial_open, serial_fdopen_ops): Link new serial in open serials chain. (do_serial_close): Unlink serial from the open serials chain. commit ccb430de2b34ed7414e294a9620acfc0b302ac41 Author: Nick Clifton Date: Wed Jun 13 10:07:11 2012 +0000 * wrapper.c (sim_create_inferior): Treat WMMX2 binaries as iWMMXt binaries (for now). commit 1167d4a77ade4a8c74e75c91e25e09a867256615 Author: Nick Clifton Date: Wed Jun 13 10:01:50 2012 +0000 * elf32-arm.c (bfd_arm_get_mach_from_attributes): New function. (elf32_arm_object_p): If the machine number could not be deduced from the notes, call bfd_arm_get_mach_from_attributes to get the number from the attributes. commit cb5937a3537be55826abdad41ebebb569f61985a Author: qiyao Date: Wed Jun 13 02:35:00 2012 +0000 gdb/gdbserver: * server.c (start_inferior): Remove duplicated writes to fields 'last_resume_kind' and 'last_status' of 'current_inferior'. commit 5f0fc9624dc5d0915277364e03dc80143ac963bc Author: gdbadmin Date: Wed Jun 13 00:00:33 2012 +0000 *** empty log message *** commit 272e5bebaa02939e0c2bef857d1ef3ea89f7ddf8 Author: Alan Modra Date: Wed Jun 13 00:00:04 2012 +0000 daily update commit de845dddb417549a28c4f4e5712da077376cdda2 Author: espindola Date: Tue Jun 12 22:50:44 2012 +0000 2012-06-12 Rafael Ávila de Espíndola * plugin-api.h (ld_plugin_output_file_type): Add LDPO_PIE. commit 6f75c2e24bb51b9d96e7a64f8cf4d2ca4ed7c39f Author: Pedro Alves Date: Tue Jun 12 18:30:20 2012 +0000 2012-06-12 Pedro Alves * infrun.c (infrun_thread_stop_requested_callback): Don't switch threads here. (prepare_for_detach): No longer context switch here in non-stop mode. (fetch_inferior_event): Ditto. (handle_inferior_event) : Switch to the event thread before removing breakpoints. Switch to the event thread before inserting breakpoints and resuming. (handle_inferior_event) : Switch to the event thread before resuming. (handle_inferior_event) : Switch to the event thread before removing breakpoints. commit 6fee2d785da75a6e50633252f0080f2654f8c1a0 Author: Eli Zaretskii Date: Tue Jun 12 16:36:35 2012 +0000 Fix quoting of special characters for the MinGW build. infcmd.c (construct_inferior_arguments) [__MINGW32__]: Quote special characters correctly for the Windows shells. See http://sourceware.org/ml/gdb/2012-06/msg00047.html for the bug report. [!__MINGW32__]: Remove extra double quote character from special characters. commit e82993f76b1b0332db48785fb3f84aa53d8e9265 Author: qiyao Date: Tue Jun 12 14:02:15 2012 +0000 gdb/gdbserver: * linux-low.c (linux_set_resume_request): Simplify predicate. Add comment. * server.c (handle_v_cont): Extend comment. commit c02f6f29ca5977ffd83d0193c6e508cf7d5a33b3 Author: H.J. Lu Date: Tue Jun 12 12:55:07 2012 +0000 Abort if PT_GNU_RELRO segment doesn't fit in PT_LOAD segment bfd/ PR bfd/14207 * elf.c (assign_file_positions_for_non_load_sections): Abort if PT_GNU_RELRO segment doesn't fit in PT_LOAD segment. ld/testsuite/ PR ld/14207 * ld-x86-64/x86-64.exp: Run pr14207. * ld-x86-64/pr14207.d: New file. * ld-x86-64/pr14207.s: Likewise. commit a5a29dc08d74b30a5111ff66a9468e11ac8d9f82 Author: Alan Modra Date: Tue Jun 12 06:31:05 2012 +0000 PR ld/14207 * elf.c (_bfd_elf_map_sections_to_segments): Disregard bss type sections at end of PT_LOAD segment when searching for segment that contains end of relro extent. commit 0a4f31a180a160179bd39f5b04ac341be28b0f0c Author: Stan Shebs Date: Tue Jun 12 00:58:54 2012 +0000 * ui-out.h: Remove #if 0 declarations. * ui-out.c: Remove #if 0 functions. commit d61da2bf7b1840627cebfadc96ef9b784e0b7666 Author: gdbadmin Date: Tue Jun 12 00:00:33 2012 +0000 *** empty log message *** commit 3375ec4bf84bec578101fdbd098c93d0e7ae46a7 Author: Alan Modra Date: Tue Jun 12 00:00:04 2012 +0000 daily update commit 891661e8e5978859393b3c0518d256ccea9ef41d Author: Pedro Alves Date: Mon Jun 11 20:36:53 2012 +0000 2012-06-11 Pedro Alves * ser-base.c (run_async_handler_and_reschedule): New. (fd_event, push_event): Use it. * serial.c (serial_open, serial_fdopen_ops): Set the initial reference count to 1. (do_serial_close): Set the bufp field to NULL. Use serial_unref instead of xfree. (serial_is_open, serial_ref, serial_unref): New. * serial.h (serial_open): Adjust comment. (serial_is_open): Declare. (serial_close): Adjust comment. (serial_ref, serial_unref) Declare. (struct serial): New field 'refcnt'. commit 877dce5b0d75d33cf93a4cda88a73cf828be5875 Author: Pedro Alves Date: Mon Jun 11 20:33:56 2012 +0000 2012-06-11 Pedro Alves Remove #if 0'd "connect" command, and unnecessary associated refcounting and serial reuse bits. * serial.h (struct serial): Remove fields 'next' and 'refcnt'. * serial.c (last_serial_opened): Delete. (scb_base): Delete. (serial_open): Adjust. (serial_for_fd): Delete. (serial_fdopen_ops, do_serial_close): Adjust. (serial_fdopen_ops): Adjust. commit f1bef71ff8089217ade0f121c05471b0175701cd Author: Pedro Alves Date: Mon Jun 11 20:32:28 2012 +0000 2012-06-11 Pedro Alves * serial.c (do_serial_close): Remove early return when SCB is null. commit 2131d06f046e45da3d79e3bef0480cc930c46438 Author: Tom Tromey Date: Mon Jun 11 20:19:22 2012 +0000 * dwarf2read.c (dw2_get_file_names_reader): Ignore partial units. commit ea858bd2062ac5f09f673757bc4be571a819744f Author: Jan Kratochvil Date: Mon Jun 11 19:16:21 2012 +0000 gdb/ Fix regression by the "ambiguous linespec" series. * breakpoint.c (parse_breakpoint_sals): New variable cursal. Use get_last_displayed_symtab and get_last_displayed_line and depending on CURSAL. gdb/testsuite/ Fix regression by the "ambiguous linespec" series. * gdb.base/break.exp (list marker1, break lineno, delete $bpnum): New tests. commit dfa372b5647dc625aba540d12af26ce210849fa7 Author: Tom Tromey Date: Mon Jun 11 18:44:58 2012 +0000 * dwarf2read.c (dw2_get_primary_filename_reader): New function. (dw2_find_symbol_file): Use it. commit 5cfe05bdd463e19a2bdcb53e14bc5b81db69a3df Author: Jan Kratochvil Date: Mon Jun 11 17:44:06 2012 +0000 gdb/testsuite/ * lib/future.exp: Set $use_gdb_compile even if only find_go_linker is missing. commit 0472f4e84f43475b667db3a50a921601c1c27fd5 Author: H.J. Lu Date: Mon Jun 11 16:48:35 2012 +0000 Reindent assign_file_positions_for_non_load_sections * elf.c (assign_file_positions_for_non_load_sections): Reindent. commit ebceccdf9f20091dc910840880552156c34644e1 Author: H.J. Lu Date: Mon Jun 11 16:44:02 2012 +0000 Reindent _bfd_elf_map_sections_to_segments * elf.c (_bfd_elf_map_sections_to_segments): Reindent. commit 81651b1f54338cccb1bc7916fa4508cbf772e666 Author: eager Date: Mon Jun 11 16:08:17 2012 +0000 *** empty log message *** commit 177b7c4591b40a1f2c235b91bfb1efc4afb370eb Author: Tom Tromey Date: Mon Jun 11 15:14:59 2012 +0000 * infrun.c (handle_inferior_event) : Don't delete the step-resume breakpoint. : Remove longjmp logic; use exception logic in all cases. Update comments. (insert_longjmp_resume_breakpoint): Set the exception resume breakpoint. testsuite * gdb.base/longjmp.c (hidden_longjmp): Move expected catch location... (main): ...here. commit a507ed13116a97f0a0b5a863423163f3526651aa Author: Maciej W. Rozycki Date: Mon Jun 11 10:11:11 2012 +0000 * mips-tdep.c (mips_push_dummy_code): Handle microMIPS code. commit e2dc83362244d8a230b15b9306074604bd81ba2c Author: Andreas Schwab Date: Mon Jun 11 08:20:43 2012 +0000 opcodes/ * ppc-opc.c (lvsl, lvebx, isellt, icbt, ldepx, lwepx, lvsr, lvehx) (iselgt, lvewx, iseleq, isel, dcbst, dcbstep, dcbfl, dcbf, lbepx) (lvx, dcbfep, dcbtstls, stvebx, dcbtstlse, stdepx, stwepx, dcbtls) (stvehx, dcbtlse, stvewx, stbepx, icblc, stvx, dcbtstt, dcbtst) (dcbtst, dcbtstep, dcbtt, dcbt, dcbt, lhepx, eciwx, dcbtep) (dcread, lxvdsx, lvxl, dcblc, sthepx, ecowx, dcbi, dcread, icbtls) (stvxl, lxsdx, lfdepx, stxsdx, stfdepx, dcba, dcbal, lxvw4x) (tlbivax, lfdpx, lxvd2x, tlbsrx., stxvw4x, tlbsx, tlbsx., stfdpx) (stfqx, stxvd2x, icbi, icbiep, icread, dcbzep): Change RA to RA0. gas/testsuite/ * gas/ppc/e500mc.d: Update. * gas/ppc/476.d: Update. commit c3155ec2b1db0b1e520053a74cfdfd03d8bd87d2 Author: qiyao Date: Mon Jun 11 07:24:15 2012 +0000 gdb/gdbserver: * linux-low.c (linux_attach): Add 'static'. commit f219d2c3048ea000a35ed5821d93affad77d9b4a Author: Alan Modra Date: Mon Jun 11 00:00:05 2012 +0000 daily update commit 7c97ba1d40079f7740f28fd1cdac8cf5316b6032 Author: gdbadmin Date: Mon Jun 11 00:00:02 2012 +0000 *** empty log message *** ----------------------------------------------------------------------- Summary of changes: bfd/ChangeLog | 39 + bfd/elf.c | 45 +- bfd/elf32-arm.c | 53 ++- bfd/elflink.c | 73 ++ bfd/version.h | 2 +- gdb/ChangeLog | 192 +++++ gdb/NEWS | 5 + gdb/arch-utils.c | 11 + gdb/arch-utils.h | 2 + gdb/breakpoint.c | 15 +- gdb/configure | 5 + gdb/configure.ac | 10 +- gdb/doc/ChangeLog | 12 + gdb/doc/gdb.texinfo | 158 ++++ gdb/dwarf2read.c | 55 ++- gdb/gdbarch.c | 24 + gdb/gdbarch.h | 10 + gdb/gdbarch.sh | 7 + gdb/gdbserver/ChangeLog | 16 + gdb/gdbserver/linux-low.c | 11 +- gdb/gdbserver/server.c | 6 +- gdb/infcall.c | 12 +- gdb/infcmd.c | 35 +- gdb/inferior.h | 2 + gdb/infrun.c | 192 ++--- gdb/m68k-tdep.c | 12 + gdb/mips-linux-tdep.c | 94 +++ gdb/mips-linux-tdep.h | 42 + gdb/mips-tdep.c | 25 +- gdb/ser-base.c | 30 +- gdb/serial.c | 216 +----- gdb/serial.h | 28 +- gdb/sh-tdep.c | 784 +------------------- gdb/sh64-tdep.c | 119 --- gdb/sh64-tdep.h | 1 - gdb/testsuite/ChangeLog | 26 + gdb/testsuite/gdb.base/break.exp | 7 + gdb/testsuite/gdb.base/longjmp.c | 4 +- gdb/testsuite/gdb.threads/clone-new-thread-event.c | 75 ++ .../gdb.threads/clone-new-thread-event.exp | 34 + gdb/testsuite/gdb.trace/strace.exp | 32 +- gdb/testsuite/lib/future.exp | 2 +- gdb/tic6x-tdep.c | 65 +- gdb/ui-out.c | 55 -- gdb/ui-out.h | 24 - gdb/valarith.c | 2 +- gdb/version.in | 2 +- include/ChangeLog | 12 + include/dwarf2.def | 4 + include/dwarf2.h | 5 + include/opcode/ChangeLog | 6 + include/opcode/avr.h | 12 +- include/plugin-api.h | 3 +- opcodes/ChangeLog | 12 + opcodes/ppc-opc.c | 150 ++-- sim/ChangeLog | 4 + sim/arm/ChangeLog | 5 + sim/arm/wrapper.c | 1 + sim/microblaze/interp.c | 1 + 59 files changed, 1414 insertions(+), 1472 deletions(-) create mode 100644 gdb/testsuite/gdb.threads/clone-new-thread-event.c create mode 100644 gdb/testsuite/gdb.threads/clone-new-thread-event.exp First 500 lines of diff: diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 9874ff1..41e6264 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,42 @@ +2012-06-13 Nick Clifton + + * elf32-arm.c (bfd_arm_get_mach_from_attributes): New function. + (elf32_arm_object_p): If the machine number could not be deduced + from the notes, call bfd_arm_get_mach_from_attributes to get the + number from the attributes. + +2012-06-12 H.J. Lu + + PR bfd/14207 + * elf.c (assign_file_positions_for_non_load_sections): Abort if + PT_GNU_RELRO segment doesn't fit in PT_LOAD segment. + +2012-06-12 Alan Modra + + PR ld/14207 + * elf.c (_bfd_elf_map_sections_to_segments): Disregard bss type + sections at end of PT_LOAD segment when searching for segment + that contains end of relro extent. + +2012-06-11 H.J. Lu + + * elf.c (assign_file_positions_for_non_load_sections): Reindent. + +2012-06-11 H.J. Lu + + * elf.c (_bfd_elf_map_sections_to_segments): Reindent. + +2012-06-06 Alan Modra + + * elflink.c (elf_link_input_bfd): Provide a file symbol for + each input file with local syms, if the input lacks such. + (bfd_elf_final_link): Add a file symbol to mark end of locals + for which we can associate with input files. + (struct elf_final_link_info): Add filesym_count field. + (struct elf_outext_info): Add need_second_pass and second_pass. + (elf_link_output_extsym): Detect symbols defined in the output + file, emit them on second pass over locals. + 2012-06-04 Jan Kratochvil * bfd-in.h (bfd_elf_bfd_from_remote_memory): Make LEN argument diff --git a/bfd/elf.c b/bfd/elf.c index d97da9f..0296ef5 100644 --- a/bfd/elf.c +++ b/bfd/elf.c @@ -4152,18 +4152,25 @@ _bfd_elf_map_sections_to_segments (bfd *abfd, struct bfd_link_info *info) { for (m = mfirst; m != NULL; m = m->next) { - if (m->p_type == PT_LOAD) + if (m->p_type == PT_LOAD + && m->count != 0 + && m->sections[0]->vma >= info->relro_start + && m->sections[0]->vma < info->relro_end) { - asection *last = m->sections[m->count - 1]; - bfd_vma vaddr = m->sections[0]->vma; - bfd_vma filesz = last->vma - vaddr + last->size; + i = m->count; + while (--i != (unsigned) -1) + if ((m->sections[i]->flags & (SEC_LOAD | SEC_HAS_CONTENTS)) + == (SEC_LOAD | SEC_HAS_CONTENTS)) + break; + + if (i == (unsigned) -1) + continue; - if (vaddr < info->relro_end - && vaddr >= info->relro_start - && (vaddr + filesz) >= info->relro_end) + if (m->sections[i]->vma + m->sections[i]->size + >= info->relro_end) break; } - } + } /* Make a PT_GNU_RELRO segment only when it isn't empty. */ if (m != NULL) @@ -4924,6 +4931,11 @@ assign_file_positions_for_non_load_sections (bfd *abfd, && lp->p_vaddr + lp->p_filesz >= link_info->relro_end) break; } + + /* PR ld/14207. If the RELRO segment doesn't fit in the + LOAD segment, it should be removed. */ + if (lp == (phdrs + count)) + abort (); } else { @@ -4949,14 +4961,15 @@ assign_file_positions_for_non_load_sections (bfd *abfd, else abort (); p->p_memsz = p->p_filesz; - /* Preserve the alignment and flags if they are valid. The gold - linker generates RW/4 for the PT_GNU_RELRO section. It is better - for objcopy/strip to honor these attributes otherwise gdb will - choke when using separate debug files. */ - if (!m->p_align_valid) - p->p_align = 1; - if (!m->p_flags_valid) - p->p_flags = (lp->p_flags & ~PF_W); + /* Preserve the alignment and flags if they are valid. The + gold linker generates RW/4 for the PT_GNU_RELRO section. + It is better for objcopy/strip to honor these attributes + otherwise gdb will choke when using separate debug files. + */ + if (!m->p_align_valid) + p->p_align = 1; + if (!m->p_flags_valid) + p->p_flags = (lp->p_flags & ~PF_W); } else { diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c index 10d5dcc..e9157b2 100644 --- a/bfd/elf32-arm.c +++ b/bfd/elf32-arm.c @@ -10956,6 +10956,43 @@ elf32_arm_final_link (bfd *abfd, struct bfd_link_info *info) return TRUE; } +/* Return a best guess for the machine number based on the attributes. */ + +static unsigned int +bfd_arm_get_mach_from_attributes (bfd * abfd) +{ + int arch = bfd_elf_get_obj_attr_int (abfd, OBJ_ATTR_PROC, Tag_CPU_arch); + + switch (arch) + { + case TAG_CPU_ARCH_V4: return bfd_mach_arm_4; + case TAG_CPU_ARCH_V4T: return bfd_mach_arm_4T; + case TAG_CPU_ARCH_V5T: return bfd_mach_arm_5T; + + case TAG_CPU_ARCH_V5TE: + { + char * name; + + BFD_ASSERT (Tag_CPU_name < NUM_KNOWN_OBJ_ATTRIBUTES); + name = elf_known_obj_attributes (abfd) [OBJ_ATTR_PROC][Tag_CPU_name].s; + + if (name) + { + if (strcmp (name, "IWMMXT2") == 0) + return bfd_mach_arm_iWMMXt2; + + if (strcmp (name, "IWMMXT") == 0) + return bfd_mach_arm_iWMMXt; + } + + return bfd_mach_arm_5TE; + } + + default: + return bfd_mach_arm_unknown; + } +} + /* Set the right machine number. */ static bfd_boolean @@ -10965,15 +11002,15 @@ elf32_arm_object_p (bfd *abfd) mach = bfd_arm_get_mach_from_notes (abfd, ARM_NOTE_SECTION); - if (mach != bfd_mach_arm_unknown) - bfd_default_set_arch_mach (abfd, bfd_arch_arm, mach); - - else if (elf_elfheader (abfd)->e_flags & EF_ARM_MAVERICK_FLOAT) - bfd_default_set_arch_mach (abfd, bfd_arch_arm, bfd_mach_arm_ep9312); - - else - bfd_default_set_arch_mach (abfd, bfd_arch_arm, mach); + if (mach == bfd_mach_arm_unknown) + { + if (elf_elfheader (abfd)->e_flags & EF_ARM_MAVERICK_FLOAT) + mach = bfd_mach_arm_ep9312; + else + mach = bfd_arm_get_mach_from_attributes (abfd); + } + bfd_default_set_arch_mach (abfd, bfd_arch_arm, mach); return TRUE; } diff --git a/bfd/elflink.c b/bfd/elflink.c index e715942..a9d95bd 100644 --- a/bfd/elflink.c +++ b/bfd/elflink.c @@ -7403,6 +7403,8 @@ struct elf_final_link_info size_t symbuf_size; /* And same for symshndxbuf. */ size_t shndxbuf_size; + /* Number of STT_FILE syms seen. */ + size_t filesym_count; }; /* This struct is used to pass information to elf_link_output_extsym. */ @@ -7411,6 +7413,8 @@ struct elf_outext_info { bfd_boolean failed; bfd_boolean localsyms; + bfd_boolean need_second_pass; + bfd_boolean second_pass; struct elf_final_link_info *flinfo; }; @@ -8605,6 +8609,11 @@ elf_link_output_extsym (struct bfd_hash_entry *bh, void *data) { if (!h->forced_local) return TRUE; + if (eoinfo->second_pass + && !((h->root.type == bfd_link_hash_defined + || h->root.type == bfd_link_hash_defweak) + && h->root.u.def.section->output_section != NULL)) + return TRUE; } else { @@ -8759,6 +8768,19 @@ elf_link_output_extsym (struct bfd_hash_entry *bh, void *data) input_sec = h->root.u.def.section; if (input_sec->output_section != NULL) { + if (eoinfo->localsyms && flinfo->filesym_count == 1) + { + bfd_boolean second_pass_sym + = (input_sec->owner == flinfo->output_bfd + || input_sec->owner == NULL + || (input_sec->flags & SEC_LINKER_CREATED) != 0 + || (input_sec->owner->flags & BFD_LINKER_CREATED) != 0); + + eoinfo->need_second_pass |= second_pass_sym; + if (eoinfo->second_pass != second_pass_sym) + return TRUE; + } + sym.st_shndx = _bfd_elf_section_from_bfd_section (flinfo->output_bfd, input_sec->output_section); @@ -9111,6 +9133,7 @@ elf_link_input_bfd (struct elf_final_link_info *flinfo, bfd *input_bfd) bfd_size_type address_size; bfd_vma r_type_mask; int r_sym_shift; + bfd_boolean have_file_sym = FALSE; output_bfd = flinfo->output_bfd; bed = get_elf_backend_data (output_bfd); @@ -9246,6 +9269,29 @@ elf_link_input_bfd (struct elf_final_link_info *flinfo, bfd *input_bfd) && bfd_is_local_label_name (input_bfd, name))) continue; + if (ELF_ST_TYPE (isym->st_info) == STT_FILE) + { + have_file_sym = TRUE; + flinfo->filesym_count += 1; + } + if (!have_file_sym) + { + /* In the absence of debug info, bfd_find_nearest_line uses + FILE symbols to determine the source file for local + function symbols. Provide a FILE symbol here if input + files lack such, so that their symbols won't be + associated with a previous input file. It's not the + source file, but the best we can do. */ + have_file_sym = TRUE; + flinfo->filesym_count += 1; + memset (&osym, 0, sizeof (osym)); + osym.st_info = ELF_ST_INFO (STB_LOCAL, STT_FILE); + osym.st_shndx = SHN_ABS; + if (!elf_link_output_sym (flinfo, input_bfd->filename, &osym, + bfd_abs_section_ptr, NULL)) + return FALSE; + } + osym = *isym; /* Adjust the section index for the output file. */ @@ -10318,6 +10364,7 @@ bfd_elf_final_link (bfd *abfd, struct bfd_link_info *info) flinfo.symshndxbuf = NULL; flinfo.symbuf_count = 0; flinfo.shndxbuf_size = 0; + flinfo.filesym_count = 0; /* The object attributes have been merged. Remove the input sections from the link, and set the contents of the output @@ -10792,6 +10839,17 @@ bfd_elf_final_link (bfd *abfd, struct bfd_link_info *info) } } + /* Output a FILE symbol so that following locals are not associated + with the wrong input file. */ + memset (&elfsym, 0, sizeof (elfsym)); + elfsym.st_info = ELF_ST_INFO (STB_LOCAL, STT_FILE); + elfsym.st_shndx = SHN_ABS; + + if (flinfo.filesym_count > 1 + && !elf_link_output_sym (&flinfo, NULL, &elfsym, + bfd_und_section_ptr, NULL)) + return FALSE; + /* Output any global symbols that got converted to local in a version script or due to symbol visibility. We do this in a separate step since ELF requires all local symbols to appear @@ -10801,10 +10859,25 @@ bfd_elf_final_link (bfd *abfd, struct bfd_link_info *info) eoinfo.failed = FALSE; eoinfo.flinfo = &flinfo; eoinfo.localsyms = TRUE; + eoinfo.need_second_pass = FALSE; + eoinfo.second_pass = FALSE; bfd_hash_traverse (&info->hash->table, elf_link_output_extsym, &eoinfo); if (eoinfo.failed) return FALSE; + if (flinfo.filesym_count == 1 + && !elf_link_output_sym (&flinfo, NULL, &elfsym, + bfd_und_section_ptr, NULL)) + return FALSE; + + if (eoinfo.need_second_pass) + { + eoinfo.second_pass = TRUE; + bfd_hash_traverse (&info->hash->table, elf_link_output_extsym, &eoinfo); + if (eoinfo.failed) + return FALSE; + } + /* If backend needs to output some local symbols not present in the hash table, do it now. */ if (bed->elf_backend_output_arch_local_syms) diff --git a/bfd/version.h b/bfd/version.h index 427c5f5..e348750 100644 --- a/bfd/version.h +++ b/bfd/version.h @@ -1,4 +1,4 @@ -#define BFD_VERSION_DATE 20120606 +#define BFD_VERSION_DATE 20120613 #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 62752de..4befbd4 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,195 @@ +2012-06-13 Pedro Alves + + Partial revert of previous change. + + * serial.c (scb_base): New global. + (serial_for_fd): New. + (serial_open, serial_fdopen_ops): Link new serial in open serials + chain. + (do_serial_close): Unlink serial from the open serials chain. + +2012-06-12 Pedro Alves + + * infrun.c (infrun_thread_stop_requested_callback): Don't switch + threads here. + (prepare_for_detach): No longer context switch here in non-stop + mode. + (fetch_inferior_event): Ditto. + (handle_inferior_event) : Switch + to the event thread before removing breakpoints. Switch to the + event thread before inserting breakpoints and resuming. + (handle_inferior_event) : Switch to the + event thread before resuming. + (handle_inferior_event) : + Switch to the event thread before removing breakpoints. + +2012-06-12 Eli Zaretskii + + * infcmd.c (construct_inferior_arguments) [__MINGW32__]: Quote + special characters correctly for the Windows shells. See + http://sourceware.org/ml/gdb/2012-06/msg00047.html for the bug + report. + [!__MINGW32__]: Remove extra double quote character from special + characters. + +2012-06-11 Stan Shebs + + * ui-out.h: Remove #if 0 declarations. + * ui-out.c: Remove #if 0 functions. + +2012-06-11 Pedro Alves + + * ser-base.c (run_async_handler_and_reschedule): New. + (fd_event, push_event): Use it. + * serial.c (serial_open, serial_fdopen_ops): Set the initial + reference count to 1. + (do_serial_close): Set the bufp field to NULL. Use serial_unref + instead of xfree. + (serial_is_open, serial_ref, serial_unref): New. + * serial.h (serial_open): Adjust comment. + (serial_is_open): Declare. + (serial_close): Adjust comment. + (serial_ref, serial_unref) Declare. + (struct serial): New field 'refcnt'. + +2012-06-11 Pedro Alves + + Remove #if 0'd "connect" command, and unnecessary associated + refcounting and serial reuse bits. + + * serial.h (struct serial): Remove fields 'next' and 'refcnt'. + * serial.c (last_serial_opened): Delete. + (scb_base): Delete. + (serial_open): Adjust. + (serial_for_fd): Delete. + (serial_fdopen_ops, do_serial_close): Adjust. + (serial_fdopen_ops): Adjust. + +2012-06-11 Pedro Alves + + * serial.c (do_serial_close): Remove early return when SCB is + null. + +2012-06-11 Tom Tromey + + * dwarf2read.c (dw2_get_file_names_reader): Ignore partial units. + +2012-06-11 Jan Kratochvil + + Fix regression by the "ambiguous linespec" series. + * breakpoint.c (parse_breakpoint_sals): New variable cursal. Use + get_last_displayed_symtab and get_last_displayed_line and depending + on CURSAL. + +2012-06-11 Tom Tromey + + * dwarf2read.c (dw2_get_primary_filename_reader): New function. + (dw2_find_symbol_file): Use it. + +2012-06-11 Michael Eager + + * mips-linux-tdep.c (mips_gdb_signal_from_target): New + * mips-linux-tdep.h (mips_signals): New + +2012-06-11 Tom Tromey + + * infrun.c (handle_inferior_event) + : Don't delete the step-resume + breakpoint. + : Remove longjmp logic; use + exception logic in all cases. Update comments. + (insert_longjmp_resume_breakpoint): Set the exception resume + breakpoint. + +2012-06-11 Maciej W. Rozycki + + * mips-tdep.c (mips_push_dummy_code): Handle microMIPS code. + +2012-06-09 Siva Chandra Reddy + + * valarith.c (binop_types_user_defined_p): Fix a typo. + +2012-06-08 Yao Qi + Chung-Lin Tang + + * arch-utils.c (default_return_in_first_hidden_param_p): New. + * arch-utils.h: Declare. + * gdbarch.sh: Add return_in_first_hidden_param_p. + * gdbarch.c, gdbarch.h: Regenerated. + * infcall.c (call_function_by_hand): Call + gdbarch_return_in_first_hidden_param_p instead of + language_pass_by_reference. + + * m68k-tdep.c (m68k_return_in_first_hidden_param_p): New. + (m68k_gdbarch_init): Install m68k_return_in_first_hidden_param_p. + * sh-tdep.c (sh_return_in_first_hidden_param_p): New. + (sh_gdbarch_init): Install sh_return_in_first_hidden_param_p. + * tic6x-tdep.c (tic6x_push_dummy_call): Remove local variable + `cplus_return_struct_by_reference'. + (tic6x_return_value): Handle language cplusplus. + (tic6x_return_in_first_hidden_param_p): New. + (tic6x_gdbarch_init): Install tic6x_return_in_first_hidden_param_p. + +2012-06-07 Doug Evans + + * dwarf2read.c (dwarf2_cu): Add comment. + +2012-06-06 Maciej W. Rozycki + + * mips-tdep.c (mips_pseudo_register_type): Remove tdep local + variable. + (mips_eabi_push_dummy_call): Likewise. + (mips_n32n64_push_dummy_call): Likewise. + (mips_o32_push_dummy_call): Likewise. + (mips_o64_push_dummy_call): Likewise. + +2012-06-06 Maciej W. Rozycki + + * mips-tdep.c (mips_convert_register_p): Correct coding style. hooks/post-receive -- Repository for Project Archer.