From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12994 invoked by alias); 29 Jan 2013 22:10:48 -0000 Mailing-List: contact archer-commits-help@sourceware.org; run by ezmlm Sender: Precedence: bulk List-Post: List-Help: List-Subscribe: Received: (qmail 12602 invoked by uid 9674); 29 Jan 2013 22:10:45 -0000 Date: Tue, 29 Jan 2013 22:10:00 -0000 Message-ID: <20130129221045.12585.qmail@sourceware.org> From: jkratoch@sourceware.org To: archer-commits@sourceware.org Subject: [SCM] archer-jankratochvil-absdir: . X-Git-Refname: refs/heads/archer-jankratochvil-absdir X-Git-Reftype: branch X-Git-Oldrev: 672aaf87ea140eacbb7c6af61b443aaee3860a09 X-Git-Newrev: 529824ba8bb861477fd7d4c3c9f4b4442acc1cf0 X-SW-Source: 2013-q1/txt/msg00033.txt.bz2 List-Id: The branch, archer-jankratochvil-absdir has been updated via 529824ba8bb861477fd7d4c3c9f4b4442acc1cf0 (commit) via d78ef551674107f2997508e7770a4a4dafbd50b8 (commit) via 8a3b1ce5418efc5ccb39783d7d62741a08b18886 (commit) via f79bf499a6e5ecd1d22b30910f10e029724b5d80 (commit) via d4796bb621ad6f6bac191f0f168a4358fe57239e (commit) via 68cb49c7cefda48f3a27f0922da9a75781eb3c17 (commit) via 74471ebcf83f6828294e7345d0a35b8aa8ebf6e0 (commit) via bcdf8b7855da74a7e090e700564fd45780613e68 (commit) via bcd07021dd00ee890d8fd09ab2f892f1805620b5 (commit) via 2df4f6249b52a464f2b8b7dc994eec2bafa247ff (commit) via b5b9c11b550223a27be72f8c54c68cd1dffb26bd (commit) via 88ca09136c8cb17f1c6830cb7eed7d9748ab5e55 (commit) via 786a6f90b3a574da3d398c71b4391d818808191e (commit) via dd67bafdb2c249afe18403dddcb29048623bca85 (commit) via 6d3b4882e8fafe409c05ee78cfc5925eb86b6139 (commit) via bd3551461a70fe1615cd7b6db8231deaa45d2e11 (commit) via dfc0d775beb1d00e709ee73e28c6e8b8f985fd79 (commit) via 91071104290a31dc990c0d0a1562cfdf02d36201 (commit) via 039b041805d9fa67887b47e555ed2edff67ed101 (commit) via 2066ff985f037f0a5a9445be4e82bc352e0978ec (commit) via 326749d1847fb13cf38aa775c9bca524432013da (commit) via f04df06ec3ee7785676ce4e5e2ee49cf73b286ab (commit) via 3cc04a746bd4f80cf61ef68eccd05f4d57f7b3bc (commit) via 4ac5f6b17da6297f6890d08be9ab24cef975789c (commit) via 009b1d0638bbd254333a30c36ca7d6552587b194 (commit) via 48c9e92440c2a1fa1776ba87c0110ea7c4797478 (commit) via 64a902018a4e5e62d3015400ce933e983378d15c (commit) via bafca3e25b3c2d7990497578904ab491782089ae (commit) via 26453a89800bc7cb7964079c9bb9fd13ccc09043 (commit) via 0eac3836a8d63f2841f98c377a56096ecb69f1b6 (commit) from 672aaf87ea140eacbb7c6af61b443aaee3860a09 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 529824ba8bb861477fd7d4c3c9f4b4442acc1cf0 Author: Jan Kratochvil Date: Tue Jan 29 23:06:21 2013 +0100 . commit d78ef551674107f2997508e7770a4a4dafbd50b8 Merge: f79bf49 8a3b1ce Author: Jan Kratochvil Date: Tue Jan 29 22:47:13 2013 +0100 Merge branch 'xfullpath-locsymtab-isabs-expandfullname-tuifullname-config-simple2-tui-psymtab-dw2fullreal-macrorel-mix' into xfullpath-locsymtab-isabs-expandfullname-tuifullname-config-simple2-tui-psymtab-dw2fullreal-macrorel-mix-default commit 8a3b1ce5418efc5ccb39783d7d62741a08b18886 Author: Jan Kratochvil Date: Tue Jan 29 22:47:04 2013 +0100 . commit f79bf499a6e5ecd1d22b30910f10e029724b5d80 Author: Jan Kratochvil Date: Tue Jan 29 22:41:24 2013 +0100 . commit d4796bb621ad6f6bac191f0f168a4358fe57239e Merge: 74471eb 68cb49c Author: Jan Kratochvil Date: Tue Jan 29 22:39:57 2013 +0100 Merge branch 'xfullpath-locsymtab-isabs-expandfullname-tuifullname-config-simple2-tui-psymtab-dw2fullreal-macrorel-mix' into xfullpath-locsymtab-isabs-expandfullname-tuifullname-config-simple2-tui-psymtab-dw2fullreal-macrorel-mix-default commit 68cb49c7cefda48f3a27f0922da9a75781eb3c17 Author: Jan Kratochvil Date: Tue Jan 29 22:39:44 2013 +0100 . commit 74471ebcf83f6828294e7345d0a35b8aa8ebf6e0 Author: Jan Kratochvil Date: Tue Jan 29 22:39:01 2013 +0100 . commit bcdf8b7855da74a7e090e700564fd45780613e68 Author: Jan Kratochvil Date: Tue Jan 29 22:36:52 2013 +0100 . commit bcd07021dd00ee890d8fd09ab2f892f1805620b5 Merge: 672aaf8 2df4f62 Author: Jan Kratochvil Date: Tue Jan 29 22:15:59 2013 +0100 Merge branch 'xfullpath-locsymtab-isabs-expandfullname-tuifullname-config-simple2-tui-psymtab-dw2fullreal' into xfullpath-locsymtab-isabs-expandfullname-tuifullname-config-simple2-tui-psymtab-dw2fullreal-macrorel commit 2df4f6249b52a464f2b8b7dc994eec2bafa247ff Merge: 4665463 b5b9c11 Author: Jan Kratochvil Date: Tue Jan 29 22:15:59 2013 +0100 Merge branch 'xfullpath-locsymtab-isabs-expandfullname-tuifullname-config-simple2-tui-psymtab' into xfullpath-locsymtab-isabs-expandfullname-tuifullname-config-simple2-tui-psymtab-dw2fullreal commit b5b9c11b550223a27be72f8c54c68cd1dffb26bd Merge: 23e12ae 88ca091 Author: Jan Kratochvil Date: Tue Jan 29 22:15:58 2013 +0100 Merge branch 'xfullpath-locsymtab-isabs-expandfullname-tuifullname-config-simple2-tui' into xfullpath-locsymtab-isabs-expandfullname-tuifullname-config-simple2-tui-psymtab commit 88ca09136c8cb17f1c6830cb7eed7d9748ab5e55 Merge: 90e2e37 786a6f9 Author: Jan Kratochvil Date: Tue Jan 29 22:15:58 2013 +0100 Merge branch 'xfullpath-locsymtab-isabs-expandfullname-tuifullname-config-simple2' into xfullpath-locsymtab-isabs-expandfullname-tuifullname-config-simple2-tui commit 786a6f90b3a574da3d398c71b4391d818808191e Merge: b21a501 dd67baf Author: Jan Kratochvil Date: Tue Jan 29 22:15:58 2013 +0100 Merge branch 'xfullpath-locsymtab-isabs-expandfullname-tuifullname-config' into xfullpath-locsymtab-isabs-expandfullname-tuifullname-config-simple2 commit dd67bafdb2c249afe18403dddcb29048623bca85 Merge: 20a7734 6d3b488 Author: Jan Kratochvil Date: Tue Jan 29 22:15:57 2013 +0100 Merge branch 'xfullpath-locsymtab-isabs-expandfullname-tuifullname' into xfullpath-locsymtab-isabs-expandfullname-tuifullname-config commit 6d3b4882e8fafe409c05ee78cfc5925eb86b6139 Merge: 433c467 bd35514 Author: Jan Kratochvil Date: Tue Jan 29 22:15:57 2013 +0100 Merge branch 'xfullpath-locsymtab-isabs-expandfullname' into xfullpath-locsymtab-isabs-expandfullname-tuifullname commit bd3551461a70fe1615cd7b6db8231deaa45d2e11 Merge: a188ba9 dfc0d77 Author: Jan Kratochvil Date: Tue Jan 29 22:15:56 2013 +0100 Merge branch 'xfullpath-locsymtab-isabs' into xfullpath-locsymtab-isabs-expandfullname commit dfc0d775beb1d00e709ee73e28c6e8b8f985fd79 Merge: 921bd30 9107110 Author: Jan Kratochvil Date: Tue Jan 29 22:15:56 2013 +0100 Merge branch 'xfullpath-locsymtab' into xfullpath-locsymtab-isabs commit 91071104290a31dc990c0d0a1562cfdf02d36201 Merge: fe8de94 039b041 Author: Jan Kratochvil Date: Tue Jan 29 22:15:55 2013 +0100 Merge branch 'xfullpath' into xfullpath-locsymtab commit 039b041805d9fa67887b47e555ed2edff67ed101 Merge: 30fe3a2 2066ff9 Author: Jan Kratochvil Date: Tue Jan 29 22:15:55 2013 +0100 Merge remote-tracking branch 'gdb/master' into xfullpath commit 2066ff985f037f0a5a9445be4e82bc352e0978ec Author: Tom Tromey Date: Tue Jan 29 19:26:16 2013 +0000 * dwarf2read.c (free_dwo_file): Remove assert. gdb/testsuite * gdb.dwarf2/fission-reread.exp: Add unload test. commit 326749d1847fb13cf38aa775c9bca524432013da Author: Tom Tromey Date: Tue Jan 29 18:54:20 2013 +0000 * value.c (deprecated_set_value_modifiable): Remove. * value.h (deprecated_set_value_modifiable): Remove. commit f04df06ec3ee7785676ce4e5e2ee49cf73b286ab Author: gdbadmin Date: Tue Jan 29 00:00:42 2013 +0000 *** empty log message *** commit 3cc04a746bd4f80cf61ef68eccd05f4d57f7b3bc Author: Alan Modra Date: Mon Jan 28 23:00:05 2013 +0000 daily update commit 4ac5f6b17da6297f6890d08be9ab24cef975789c Author: Doug Evans Date: Mon Jan 28 18:02:42 2013 +0000 * dwarf2loc.c (dwarf2_find_location_expression): Don't add base address to addresses from dwo files. testsuite/ * gdb.dwarf2/fission-loclists.exp: New file. * gdb.dwarf2/fission-loclists.S: New file. commit 009b1d0638bbd254333a30c36ca7d6552587b194 Author: Nick Clifton Date: Mon Jan 28 15:28:38 2013 +0000 PR gas/15069 * tic6x-opcode-table.h: Fix encoding of BNOP instruction. * gas/tic6x/insns-c674x-pcrel.s: Add test of BNOP instruction within header based fetch packet. * gas/tic6x/insns-c674x-pcrel.d: Update expected disassembly. commit 48c9e92440c2a1fa1776ba87c0110ea7c4797478 Author: Alan Modra Date: Mon Jan 28 12:30:12 2013 +0000 * elf64-ppc.c: Use %T to print symbols names and remove redundant "relocation" in error messages throughout file. (ppc64_elf_relocate_section): Remove sibling call error message, replace with "call lacks nop". Specially report errors for branches to function entry points via OPD lookup and branches to stubs. Remove NULL symbol handling now done by %T. commit 64a902018a4e5e62d3015400ce933e983378d15c Author: Nick Clifton Date: Mon Jan 28 10:06:51 2013 +0000 * simops.c (v850_rotl): New function. (v850_bins): New function. * simops.h: Add prototypes fir v850_rotl and v850_bins. * v850-dc: Add entries for V850e3v5. * v850.igen: Add support for v850e3v5. (ld.dw, st.dw, rotl, bins): New patterns. commit bafca3e25b3c2d7990497578904ab491782089ae Author: Alan Modra Date: Mon Jan 28 07:58:15 2013 +0000 * archive.c (bfd_generic_archive_p): Return target and keep ardata on partial matches. * format.c (bfd_check_format_matches): Adjust for above change. Remove bfd_error_file_ambiguously_recognized dead code. commit 26453a89800bc7cb7964079c9bb9fd13ccc09043 Author: gdbadmin Date: Mon Jan 28 00:00:03 2013 +0000 *** empty log message *** commit 0eac3836a8d63f2841f98c377a56096ecb69f1b6 Author: Alan Modra Date: Sun Jan 27 23:00:05 2013 +0000 daily update ----------------------------------------------------------------------- Summary of changes: bfd/ChangeLog | 17 + bfd/archive.c | 6 +- bfd/elf64-ppc.c | 89 ++-- bfd/format.c | 75 ++-- bfd/version.h | 2 +- gdb/ChangeLog | 14 + gdb/doc/gdb.texinfo | 14 +- gdb/dwarf2loc.c | 11 +- gdb/dwarf2read.c | 1 - gdb/source.c | 30 +- gdb/testsuite/ChangeLog | 9 + gdb/testsuite/gdb.dwarf2/fission-loclists.S | 554 ++++++++++++++++++++ .../{fission-reread.exp => fission-loclists.exp} | 18 +- gdb/testsuite/gdb.dwarf2/fission-reread.exp | 4 + gdb/testsuite/gdb.threads/linux-dp.exp | 4 +- gdb/value.c | 5 - gdb/value.h | 2 - gdb/version.in | 2 +- include/opcode/ChangeLog | 5 + include/opcode/tic6x-opcode-table.h | 2 +- sim/v850/ChangeLog | 9 + sim/v850/interp.c | 1 + sim/v850/simops.c | 50 ++ sim/v850/simops.h | 2 + sim/v850/v850-dc | 10 + sim/v850/v850.igen | 206 ++++++++ 26 files changed, 1031 insertions(+), 111 deletions(-) create mode 100644 gdb/testsuite/gdb.dwarf2/fission-loclists.S copy gdb/testsuite/gdb.dwarf2/{fission-reread.exp => fission-loclists.exp} (76%) First 500 lines of diff: diff --git a/bfd/ChangeLog b/bfd/ChangeLog index b746060..ff85ec7 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,20 @@ +2013-01-28 Alan Modra + + * elf64-ppc.c: Use %T to print symbols names and remove redundant + "relocation" in error messages throughout file. + (ppc64_elf_relocate_section): Remove sibling call error message, + replace with "call lacks nop". Specially report errors for + branches to function entry points via OPD lookup and branches + to stubs. Remove NULL symbol handling now done by %T. + +2013-01-28 Alan Modra + + * archive.c (bfd_generic_archive_p): Return target and keep + ardata on partial matches. + * format.c (bfd_check_format_matches): Adjust for above + change. Remove bfd_error_file_ambiguously_recognized dead + code. + 2013-01-26 Alan Modra * bfd.c (struct bfd_preserve, bfd_preserve_save, bfd_preserve_restore, diff --git a/bfd/archive.c b/bfd/archive.c index be0f562..e4183ea 100644 --- a/bfd/archive.c +++ b/bfd/archive.c @@ -852,11 +852,7 @@ bfd_generic_archive_p (bfd *abfd) first->target_defaulted = FALSE; if (bfd_check_format (first, bfd_object) && first->xvec != abfd->xvec) - { - bfd_set_error (bfd_error_wrong_object_format); - bfd_ardata (abfd) = tdata_hold; - return NULL; - } + bfd_set_error (bfd_error_wrong_object_format); /* And we ought to close `first' here too. */ } } diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c index 9ce20af..2f6999b 100644 --- a/bfd/elf64-ppc.c +++ b/bfd/elf64-ppc.c @@ -6611,7 +6611,7 @@ ppc64_elf_adjust_dynamic_symbol (struct bfd_link_info *info, sections. Allow them to proceed, but warn that this might break at runtime. */ info->callbacks->einfo - (_("%P: copy reloc against `%s' requires lazy plt linking; " + (_("%P: copy reloc against `%T' requires lazy plt linking; " "avoid setting LD_BIND_NOW=1 or upgrade gcc\n"), h->root.root.string); } @@ -8666,7 +8666,7 @@ ppc64_elf_edit_toc (struct bfd_link_info *info) if (!ppc64_elf_howto_table[R_PPC64_ADDR32]) ppc_howto_init (); info->callbacks->einfo - (_("%P: %H: %s relocation references " + (_("%P: %H: %s references " "optimized away TOC entry\n"), ibfd, sec, rel->r_offset, ppc64_elf_howto_table[r_type]->name); @@ -9873,7 +9873,7 @@ get_r2off (struct bfd_link_info *info, if (strcmp (opd->name, ".opd") != 0 || opd->reloc_count != 0) { - info->callbacks->einfo (_("%P: cannot find opd entry toc for %s\n"), + info->callbacks->einfo (_("%P: cannot find opd entry toc for `%T'\n"), stub_entry->h->elf.root.root.string); bfd_set_error (bfd_error_bad_value); return 0; @@ -9955,8 +9955,9 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg) if (off + (1 << 25) >= (bfd_vma) (1 << 26)) { - info->callbacks->einfo (_("%P: long branch stub `%s' offset overflow\n"), - stub_entry->root.string); + info->callbacks->einfo + (_("%P: long branch stub `%s' offset overflow\n"), + stub_entry->root.string); htab->stub_error = TRUE; return FALSE; } @@ -10076,7 +10077,7 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg) if (off + 0x80008000 > 0xffffffff || (off & 7) != 0) { info->callbacks->einfo - (_("%P: linkage table error against `%s'\n"), + (_("%P: linkage table error against `%T'\n"), stub_entry->root.string); bfd_set_error (bfd_error_bad_value); htab->stub_error = TRUE; @@ -10219,7 +10220,7 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg) if (off + 0x80008000 > 0xffffffff || (off & 7) != 0) { info->callbacks->einfo - (_("%P: linkage table error against `%s'\n"), + (_("%P: linkage table error against `%T'\n"), stub_entry->h != NULL ? stub_entry->h->elf.root.root.string : ""); @@ -12279,6 +12280,7 @@ ppc64_elf_relocate_section (bfd *output_bfd, bfd_vma relocation; bfd_boolean unresolved_reloc; bfd_boolean warned; + enum { DEST_NORMAL, DEST_OPD, DEST_STUB } reloc_dest; unsigned int insn; unsigned int mask; struct ppc_stub_hash_entry *stub_entry; @@ -12443,8 +12445,8 @@ ppc64_elf_relocate_section (bfd *output_bfd, else info->callbacks->einfo (!IS_PPC64_TLS_RELOC (r_type) - ? _("%P: %H: %s used with TLS symbol %s\n") - : _("%P: %H: %s used with non-TLS symbol %s\n"), + ? _("%P: %H: %s used with TLS symbol `%T'\n") + : _("%P: %H: %s used with non-TLS symbol `%T'\n"), input_bfd, input_section, rel->r_offset, ppc64_elf_howto_table[r_type]->name, sym_name); @@ -12850,6 +12852,7 @@ ppc64_elf_relocate_section (bfd *output_bfd, insn = 0; max_br_offset = 1 << 25; addend = rel->r_addend; + reloc_dest = DEST_NORMAL; switch (r_type) { default: @@ -12955,25 +12958,11 @@ ppc64_elf_relocate_section (bfd *output_bfd, } else { - if (strcmp (input_section->output_section->name, - ".init") == 0 - || strcmp (input_section->output_section->name, - ".fini") == 0) - info->callbacks->einfo - (_("%P: %H: automatic multiple TOCs " - "not supported using your crt files; " - "recompile with -mminimal-toc or upgrade gcc\n"), - input_bfd, input_section, rel->r_offset); - else - info->callbacks->einfo - (_("%P: %H: sibling call optimization to `%s' " - "does not allow automatic multiple TOCs; " - "recompile with -mminimal-toc or " - "-fno-optimize-sibling-calls, " - "or make `%s' extern\n"), - input_bfd, input_section, rel->r_offset, - sym_name, - sym_name); + info->callbacks->einfo + (_("%P: %H: call to `%T' lacks nop, can't restore toc; " + "recompile with -fPIC"), + input_bfd, input_section, rel->r_offset, sym_name); + bfd_set_error (bfd_error_bad_value); ret = FALSE; } @@ -12999,6 +12988,7 @@ ppc64_elf_relocate_section (bfd *output_bfd, { relocation = dest; addend = 0; + reloc_dest = DEST_OPD; } } @@ -13026,6 +13016,7 @@ ppc64_elf_relocate_section (bfd *output_bfd, + stub_entry->stub_sec->output_offset + stub_entry->stub_sec->output_section->vma); addend = 0; + reloc_dest = DEST_STUB; if ((stub_entry->stub_type == ppc_stub_plt_call || stub_entry->stub_type == ppc_stub_plt_call_r2save) @@ -13083,7 +13074,7 @@ ppc64_elf_relocate_section (bfd *output_bfd, { default: info->callbacks->einfo - (_("%P: %B: unknown relocation type %d for symbol %s\n"), + (_("%P: %B: unknown relocation type %d for `%T'\n"), input_bfd, (int) r_type, sym_name); bfd_set_error (bfd_error_bad_value); @@ -13593,8 +13584,8 @@ ppc64_elf_relocate_section (bfd *output_bfd, : ELF_ST_TYPE (sym->st_info) == STT_GNU_IFUNC) { info->callbacks->einfo - (_("%P: %H: relocation %s for indirect " - "function %s unsupported\n"), + (_("%P: %H: %s for indirect " + "function `%T' unsupported\n"), input_bfd, input_section, rel->r_offset, ppc64_elf_howto_table[r_type]->name, sym_name); @@ -13698,7 +13689,7 @@ ppc64_elf_relocate_section (bfd *output_bfd, /* These ones haven't been implemented yet. */ info->callbacks->einfo - (_("%P: %B: relocation %s is not supported for symbol %s\n"), + (_("%P: %B: %s is not supported for `%T'\n"), input_bfd, ppc64_elf_howto_table[r_type]->name, sym_name); @@ -13868,7 +13859,7 @@ ppc64_elf_relocate_section (bfd *output_bfd, rel->r_offset) != (bfd_vma) -1) { info->callbacks->einfo - (_("%P: %H: unresolvable %s relocation against symbol `%s'\n"), + (_("%P: %H: unresolvable %s against `%T'\n"), input_bfd, input_section, rel->r_offset, ppc64_elf_howto_table[(int) r_type]->name, h->elf.root.root.string); @@ -13885,8 +13876,21 @@ ppc64_elf_relocate_section (bfd *output_bfd, if (r != bfd_reloc_ok) { - if (sym_name == NULL) - sym_name = "(null)"; + char *more_info = NULL; + const char *reloc_name = ppc64_elf_howto_table[r_type]->name; + + if (reloc_dest != DEST_NORMAL) + { + more_info = bfd_malloc (strlen (reloc_name) + 8); + if (more_info != NULL) + { + strcpy (more_info, reloc_name); + strcat (more_info, (reloc_dest == DEST_OPD + ? " (OPD)" : " (stub)")); + reloc_name = more_info; + } + } + if (r == bfd_reloc_overflow) { if (warned) @@ -13905,22 +13909,21 @@ ppc64_elf_relocate_section (bfd *output_bfd, } if (!((*info->callbacks->reloc_overflow) - (info, (h ? &h->elf.root : NULL), sym_name, - ppc64_elf_howto_table[r_type]->name, - orig_rel.r_addend, input_bfd, input_section, - rel->r_offset))) + (info, &h->elf.root, sym_name, + reloc_name, orig_rel.r_addend, + input_bfd, input_section, rel->r_offset))) return FALSE; } else { info->callbacks->einfo - (_("%P: %H: %s reloc against `%s': error %d\n"), + (_("%P: %H: %s against `%T': error %d\n"), input_bfd, input_section, rel->r_offset, - ppc64_elf_howto_table[r_type]->name, - sym_name, - (int) r); + reloc_name, sym_name, (int) r); ret = FALSE; } + if (more_info != NULL) + free (more_info); } } diff --git a/bfd/format.c b/bfd/format.c index 36eeb85..e2afa3b 100644 --- a/bfd/format.c +++ b/bfd/format.c @@ -279,7 +279,6 @@ bfd_check_format_matches (bfd *abfd, bfd_format format, char ***matching) for (target = bfd_target_vector; *target != NULL; target++) { const bfd_target *temp; - bfd_error_type err; /* Don't check the default target twice. */ if (*target == &binary_vec @@ -310,47 +309,47 @@ bfd_check_format_matches (bfd *abfd, bfd_format format, char ***matching) match_targ = temp; if (preserve.marker != NULL) bfd_preserve_finish (abfd, &preserve); - } - - if (temp && (abfd->format != bfd_archive || bfd_has_map (abfd))) - { - /* This format checks out as ok! */ - right_targ = temp; - - /* If this is the default target, accept it, even if other - targets might match. People who want those other targets - have to set the GNUTARGET variable. */ - if (temp == bfd_default_vector[0]) - goto ok_ret; - if (matching_vector) - matching_vector[match_count] = temp; - match_count++; - - if (temp->match_priority < best_match) + if (abfd->format != bfd_archive + || (bfd_has_map (abfd) + && bfd_get_error () != bfd_error_wrong_object_format)) { - best_match = temp->match_priority; - best_count = 0; + /* This format checks out as ok! */ + right_targ = temp; + + /* If this is the default target, accept it, even if + other targets might match. People who want those + other targets have to set the GNUTARGET variable. */ + if (temp == bfd_default_vector[0]) + goto ok_ret; + + if (matching_vector) + matching_vector[match_count] = temp; + match_count++; + + if (temp->match_priority < best_match) + { + best_match = temp->match_priority; + best_count = 0; + } + best_count++; + } + else + { + /* An archive with no armap or objects of the wrong + type. We want this target to match if we get no + better matches. */ + if (ar_right_targ != bfd_default_vector[0]) + ar_right_targ = *target; + if (matching_vector) + matching_vector[ar_match_index] = *target; + ar_match_index++; } - best_count++; - } - else if (temp - || (err = bfd_get_error ()) == bfd_error_wrong_object_format - || err == bfd_error_file_ambiguously_recognized) - { - /* An archive with no armap or objects of the wrong type, - or an ambiguous match. We want this target to match - if we get no better matches. */ - if (ar_right_targ != bfd_default_vector[0]) - ar_right_targ = *target; - if (matching_vector) - matching_vector[ar_match_index] = *target; - ar_match_index++; - } - else if (err != bfd_error_wrong_format) - goto err_ret; - if (temp && !bfd_preserve_save (abfd, &preserve)) + if (!bfd_preserve_save (abfd, &preserve)) + goto err_ret; + } + else if (bfd_get_error () != bfd_error_wrong_format) goto err_ret; } diff --git a/bfd/version.h b/bfd/version.h index 69ce7ab..4e171e2 100644 --- a/bfd/version.h +++ b/bfd/version.h @@ -1,4 +1,4 @@ -#define BFD_VERSION_DATE 20130127 +#define BFD_VERSION_DATE 20130129 #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 1b04f69..9b2193b 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,17 @@ +2013-01-29 Tom Tromey + + * dwarf2read.c (free_dwo_file): Remove assert. + +2013-01-29 Tom Tromey + + * value.c (deprecated_set_value_modifiable): Remove. + * value.h (deprecated_set_value_modifiable): Remove. + +2013-01-28 Doug Evans + + * dwarf2loc.c (dwarf2_find_location_expression): Don't add base address + to addresses from dwo files. + 2013-01-25 Siva Chandra Reddy * valops.c (find_overload_match): Remove unused argument 'lax'. diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index 074db1a..b349972 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -6541,7 +6541,7 @@ You can control how file names are displayed. @item set filename-display @itemx set filename-display relative @cindex filename-display -Display file names relative to the compilation directory. This is the default. +Display file names relative to the compilation directory. @item set filename-display basename Display only basename of a filename. @@ -6549,6 +6549,18 @@ Display only basename of a filename. @item set filename-display absolute Display an absolute filename. +@item set filename-display relative-with-system-absolute +Determine whether a source filename comes from file having separate debug +information file. In such case display the source filename as absolute one. +Otherwise display it relative to the compilation directory. + +This is the default. + +@item set filename-display basename-with-system-absolute +Determine whether a source filename comes from file having separate debug +information file. In such case display the source filename as absolute one. +Otherwise display only basename of the filename. + @item show filename-display Show the current way to display filenames. @end table diff --git a/gdb/dwarf2loc.c b/gdb/dwarf2loc.c index 3688425..62d0098 100644 --- a/gdb/dwarf2loc.c +++ b/gdb/dwarf2loc.c @@ -252,9 +252,14 @@ dwarf2_find_location_expression (struct dwarf2_loclist_baton *baton, gdb_assert_not_reached ("bad debug_loc_kind"); } - /* Otherwise, a location expression entry. */ - low += base_address; - high += base_address; + /* Otherwise, a location expression entry. + If the entry is from a DWO, don't add base address: the entry is + from .debug_addr which has absolute addresses. */ + if (! baton->from_dwo) + { + low += base_address; + high += base_address; + } length = extract_unsigned_integer (loc_ptr, 2, byte_order); loc_ptr += 2; diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c index 2aa97ec..f88cd94 100644 --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c @@ -9253,7 +9253,6 @@ free_dwo_file (struct dwo_file *dwo_file, struct objfile *objfile) int ix; struct dwarf2_section_info *section; - gdb_assert (dwo_file->dbfd != objfile->obfd); gdb_bfd_unref (dwo_file->dbfd); VEC_free (dwarf2_section_info_def, dwo_file->sections.types); diff --git a/gdb/source.c b/gdb/source.c index cff5b7c..c577283 100644 --- a/gdb/source.c +++ b/gdb/source.c @@ -113,15 +113,22 @@ show_lines_to_list (struct ui_file *file, int from_tty, static const char filename_display_basename[] = "basename"; static const char filename_display_relative[] = "relative"; static const char filename_display_absolute[] = "absolute"; +static const char filename_display_relative_with_system_absolute[] = + "relative-with-system-absolute"; +static const char filename_display_basename_with_system_absolute[] = + "basename-with-system-absolute"; static const char *const filename_display_kind_names[] = { filename_display_basename, filename_display_relative, filename_display_absolute, + filename_display_relative_with_system_absolute, + filename_display_basename_with_system_absolute, NULL }; -static const char *filename_display_string = filename_display_relative; +static const char *filename_display_string = + filename_display_relative_with_system_absolute; static void show_filename_display_string (struct ui_file *file, int from_tty, @@ -1144,8 +1151,16 @@ symtab_to_filename (struct symtab *symtab) return symtab_to_fullname (symtab); else if (filename_display_string == filename_display_relative) return symtab->filename; - else - internal_error (__FILE__, __LINE__, _("invalid filename_display_string")); + + if (symtab->objfile->separate_debug_objfile != NULL hooks/post-receive -- Repository for Project Archer.