public inbox for archer-commits@sourceware.org help / color / mirror / Atom feed
From: jkratoch@sourceware.org To: archer-commits@sourceware.org Subject: [SCM] archer-jankratochvil-absdir: Merge branch 'xfullpath-locsymtab-isabs-expandfullname-tuifullname-config-simple2-tui-psymtab-dw2fullreal' into xfullpath-locsymtab-isabs-expandfullname-tuifullname-config-simple2-tui-psymtab-dw2fullreal-macrorel Date: Sun, 27 Jan 2013 21:18:00 -0000 [thread overview] Message-ID: <20130127211818.11739.qmail@sourceware.org> (raw) The branch, archer-jankratochvil-absdir has been updated via 167f5462d519d3d878841e544d50f180866cbe47 (commit) via 7960ae611594a74fbd7e878f200be7927e750de3 (commit) via 340384b92d3c2bceca13c4e77af983a1ee54bbac (commit) via 62cc520d89bb0f01bc0ecfd481045e72888d9a5e (commit) via 527f5a1f8011776d0345faf43c4a530fa3a8c765 (commit) via ad9e07e2f39c845e42016040e5345195d9e16cf8 (commit) via 90e2e375a6c3c87a22aa7b56f57924c862824fb5 (commit) via b21a5013659f4e1f12238e011dcbde20e60fbac8 (commit) via 20a77349c48e04b19c8f1b53a5bc026c65396870 (commit) via 433c4678d97caaf84f7e77cf92629a93836177a7 (commit) via a188ba9e07daad0a3abd2926c5877b7442280cfa (commit) via 921bd30547ff3bb5316eaa4b354dbd4c56adcc40 (commit) via fe8de94a0983c851a0fa540d449967cdef510892 (commit) via 30fe3a28fc71031bdf5f8a6e098709651f71d2b1 (commit) via d2230555c883f49226cfe1512656d227b04d9dc6 (commit) via a3a5a24f0ff7955537a0055f229a9a22f651cb6c (commit) via 8db31883f510c4fd9a575524ebe1af3224954cd4 (commit) via 048ddba3325152f6b4a5a3b4ab5a8a9fca1bdc5e (commit) via 31488c939da89046ac7be79d2b43866f79413e91 (commit) via 80d865ba4f165c637f41ecf05c04d67cceaf6df3 (commit) via 4bafaf2e33812842210e9264d55d17d465ba01da (commit) via 16bb596b46d87e49868304aa6efeb18e559d9e75 (commit) via 9613d6e3d64238edd5fc56f3b5f1ac05e73462c4 (commit) via 1ad67611954239d9154a173baa233df8b5411e8a (commit) via 7e4dc3e13aceb07a691b5df2eb28ec2f518f043a (commit) via 8e246ec7e056bb7eb7a57d0b33d03a79ef165fe7 (commit) via 48adf0611465fb2714dc67bbdd21ac65a1f8b6f6 (commit) via d26c08d3827fd24c04aa4ebdb93727aa714dd677 (commit) via 48b31421505f2e4560c53583717df9f2d4f0ab3f (commit) via 53e49134d5ab02e32cba584ee1e5ce10665967e4 (commit) via a35ca3f83ad36781867dcad46a1a431bed66695e (commit) via 199014f669fd1bf620e44c247ba76dd4f2ee5f54 (commit) via 2d9a014bb1e538dd3f426bdb7bb924687d2d7663 (commit) via eb49d713499ecdd3c2b91324fa8beb360c40a65e (commit) via 4b4d4fa8ec4f7964afb37f7f0211d266e810cb72 (commit) via 5ee30377d685eab6f5c558c0df0cef7dd9a9e4f0 (commit) via 457ef222a3442ddd90030c9c63d829796b5fb02f (commit) via e1b97273be9b5acd08c4fd9a9cc18d2edc11b838 (commit) via f464aa691dae9080da5494115e987561e06b5bdf (commit) via 4fde8577a2f0addc4adf1f0e61c90866fb5bbd71 (commit) via 2f8f5697e4df9a119ea0c71aa920756e72fd1775 (commit) via 3efc239754ec850208ad8200747f6c5694ea2c82 (commit) via e4927fe267749765b1e92f285f21ee2f7762aa31 (commit) via f237e6333de59daa74df1273b9e7b22424a39088 (commit) from e1d8b124013f2e544aa8ff2498b9c62b0ad1b893 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 167f5462d519d3d878841e544d50f180866cbe47 Merge: 62cc520 7960ae6 Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Sun Jan 27 22:07:09 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 7960ae611594a74fbd7e878f200be7927e750de3 Merge: 527f5a1 340384b Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Sun Jan 27 22:06:34 2013 +0100 Merge branch 'xfullpath-locsymtab-isabs-expandfullname-tuifullname-config-simple2-tui-psymtab' into xfullpath-locsymtab-isabs-expandfullname-tuifullname-config-simple2-tui-psymtab-dw2fullreal Conflicts: gdb/dwarf2read.c commit 340384b92d3c2bceca13c4e77af983a1ee54bbac Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Sun Jan 27 21:51:42 2013 +0100 . commit 62cc520d89bb0f01bc0ecfd481045e72888d9a5e Merge: 048ddba 527f5a1 Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Sun Jan 27 21:16:51 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 527f5a1f8011776d0345faf43c4a530fa3a8c765 Merge: 31488c9 ad9e07e Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Sun Jan 27 21:16:51 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 ad9e07e2f39c845e42016040e5345195d9e16cf8 Merge: 80d865b 90e2e37 Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Sun Jan 27 21:16:50 2013 +0100 Merge branch 'xfullpath-locsymtab-isabs-expandfullname-tuifullname-config-simple2-tui' into xfullpath-locsymtab-isabs-expandfullname-tuifullname-config-simple2-tui-psymtab commit 90e2e375a6c3c87a22aa7b56f57924c862824fb5 Merge: 4bafaf2 b21a501 Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Sun Jan 27 21:16:50 2013 +0100 Merge branch 'xfullpath-locsymtab-isabs-expandfullname-tuifullname-config-simple2' into xfullpath-locsymtab-isabs-expandfullname-tuifullname-config-simple2-tui commit b21a5013659f4e1f12238e011dcbde20e60fbac8 Merge: 16bb596 20a7734 Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Sun Jan 27 21:16:50 2013 +0100 Merge branch 'xfullpath-locsymtab-isabs-expandfullname-tuifullname-config' into xfullpath-locsymtab-isabs-expandfullname-tuifullname-config-simple2 commit 20a77349c48e04b19c8f1b53a5bc026c65396870 Merge: 9613d6e 433c467 Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Sun Jan 27 21:16:49 2013 +0100 Merge branch 'xfullpath-locsymtab-isabs-expandfullname-tuifullname' into xfullpath-locsymtab-isabs-expandfullname-tuifullname-config commit 433c4678d97caaf84f7e77cf92629a93836177a7 Merge: 1ad6761 a188ba9 Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Sun Jan 27 21:16:49 2013 +0100 Merge branch 'xfullpath-locsymtab-isabs-expandfullname' into xfullpath-locsymtab-isabs-expandfullname-tuifullname commit a188ba9e07daad0a3abd2926c5877b7442280cfa Merge: 7e4dc3e 921bd30 Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Sun Jan 27 21:16:49 2013 +0100 Merge branch 'xfullpath-locsymtab-isabs' into xfullpath-locsymtab-isabs-expandfullname commit 921bd30547ff3bb5316eaa4b354dbd4c56adcc40 Merge: 8e246ec fe8de94 Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Sun Jan 27 21:16:48 2013 +0100 Merge branch 'xfullpath-locsymtab' into xfullpath-locsymtab-isabs commit fe8de94a0983c851a0fa540d449967cdef510892 Merge: 48adf06 30fe3a2 Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Sun Jan 27 21:16:48 2013 +0100 Merge branch 'xfullpath' into xfullpath-locsymtab commit 30fe3a28fc71031bdf5f8a6e098709651f71d2b1 Merge: d26c08d d223055 Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Sun Jan 27 21:16:48 2013 +0100 Merge remote-tracking branch 'gdb/master' into xfullpath commit d2230555c883f49226cfe1512656d227b04d9dc6 Author: Mike Frysinger <vapier@gentoo.org> Date: Sun Jan 27 16:56:52 2013 +0000 mention fixed bug in ChangeLog commit a3a5a24f0ff7955537a0055f229a9a22f651cb6c Author: gdbadmin <gdbadmin@sourceware.org> Date: Sun Jan 27 00:00:36 2013 +0000 *** empty log message *** commit 8db31883f510c4fd9a575524ebe1af3224954cd4 Author: Alan Modra <amodra@bigpond.net.au> Date: Sat Jan 26 23:00:06 2013 +0000 daily update commit 048ddba3325152f6b4a5a3b4ab5a8a9fca1bdc5e Merge: 53e4913 31488c9 Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Sat Jan 26 21:32:25 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 31488c939da89046ac7be79d2b43866f79413e91 Merge: a35ca3f 80d865b Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Sat Jan 26 21:32:25 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 80d865ba4f165c637f41ecf05c04d67cceaf6df3 Merge: 199014f 4bafaf2 Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Sat Jan 26 21:32:24 2013 +0100 Merge branch 'xfullpath-locsymtab-isabs-expandfullname-tuifullname-config-simple2-tui' into xfullpath-locsymtab-isabs-expandfullname-tuifullname-config-simple2-tui-psymtab commit 4bafaf2e33812842210e9264d55d17d465ba01da Merge: 2d9a014 16bb596 Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Sat Jan 26 21:32:24 2013 +0100 Merge branch 'xfullpath-locsymtab-isabs-expandfullname-tuifullname-config-simple2' into xfullpath-locsymtab-isabs-expandfullname-tuifullname-config-simple2-tui commit 16bb596b46d87e49868304aa6efeb18e559d9e75 Merge: eb49d71 9613d6e Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Sat Jan 26 21:32:23 2013 +0100 Merge branch 'xfullpath-locsymtab-isabs-expandfullname-tuifullname-config' into xfullpath-locsymtab-isabs-expandfullname-tuifullname-config-simple2 commit 9613d6e3d64238edd5fc56f3b5f1ac05e73462c4 Merge: 4b4d4fa 1ad6761 Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Sat Jan 26 21:32:22 2013 +0100 Merge branch 'xfullpath-locsymtab-isabs-expandfullname-tuifullname' into xfullpath-locsymtab-isabs-expandfullname-tuifullname-config commit 1ad67611954239d9154a173baa233df8b5411e8a Merge: 5ee3037 7e4dc3e Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Sat Jan 26 21:32:22 2013 +0100 Merge branch 'xfullpath-locsymtab-isabs-expandfullname' into xfullpath-locsymtab-isabs-expandfullname-tuifullname commit 7e4dc3e13aceb07a691b5df2eb28ec2f518f043a Merge: 457ef22 8e246ec Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Sat Jan 26 21:32:21 2013 +0100 Merge branch 'xfullpath-locsymtab-isabs' into xfullpath-locsymtab-isabs-expandfullname commit 8e246ec7e056bb7eb7a57d0b33d03a79ef165fe7 Merge: e1b9727 48adf06 Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Sat Jan 26 21:32:21 2013 +0100 Merge branch 'xfullpath-locsymtab' into xfullpath-locsymtab-isabs commit 48adf0611465fb2714dc67bbdd21ac65a1f8b6f6 Merge: f464aa6 d26c08d Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Sat Jan 26 21:32:20 2013 +0100 Merge branch 'xfullpath' into xfullpath-locsymtab commit d26c08d3827fd24c04aa4ebdb93727aa714dd677 Merge: 4fde857 48b3142 Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Sat Jan 26 21:32:19 2013 +0100 Merge remote-tracking branch 'gdb/master' into xfullpath commit 48b31421505f2e4560c53583717df9f2d4f0ab3f Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Sat Jan 26 18:43:43 2013 +0000 gdb/testsuite/ Code cleanup. * gdb.base/restore.exp: Replace gdb_compile, gdb_exit, gdb_start, gdb_reinitialize_dir and gdb_load by standard_testfile, set executable and prepare_for_testing. * gdb.base/store.exp: Likewise. commit 53e49134d5ab02e32cba584ee1e5ce10665967e4 Merge: e1d8b12 a35ca3f Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Sat Jan 26 16:41:01 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 a35ca3f83ad36781867dcad46a1a431bed66695e Merge: 5709253 199014f Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Sat Jan 26 16:41:00 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 199014f669fd1bf620e44c247ba76dd4f2ee5f54 Merge: 801ff2a 2d9a014 Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Sat Jan 26 16:41:00 2013 +0100 Merge branch 'xfullpath-locsymtab-isabs-expandfullname-tuifullname-config-simple2-tui' into xfullpath-locsymtab-isabs-expandfullname-tuifullname-config-simple2-tui-psymtab commit 2d9a014bb1e538dd3f426bdb7bb924687d2d7663 Merge: eeac999 eb49d71 Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Sat Jan 26 16:41:00 2013 +0100 Merge branch 'xfullpath-locsymtab-isabs-expandfullname-tuifullname-config-simple2' into xfullpath-locsymtab-isabs-expandfullname-tuifullname-config-simple2-tui commit eb49d713499ecdd3c2b91324fa8beb360c40a65e Merge: f9f3f4c 4b4d4fa Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Sat Jan 26 16:40:59 2013 +0100 Merge branch 'xfullpath-locsymtab-isabs-expandfullname-tuifullname-config' into xfullpath-locsymtab-isabs-expandfullname-tuifullname-config-simple2 commit 4b4d4fa8ec4f7964afb37f7f0211d266e810cb72 Merge: bac553a 5ee3037 Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Sat Jan 26 16:40:59 2013 +0100 Merge branch 'xfullpath-locsymtab-isabs-expandfullname-tuifullname' into xfullpath-locsymtab-isabs-expandfullname-tuifullname-config commit 5ee30377d685eab6f5c558c0df0cef7dd9a9e4f0 Merge: f832a31 457ef22 Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Sat Jan 26 16:40:58 2013 +0100 Merge branch 'xfullpath-locsymtab-isabs-expandfullname' into xfullpath-locsymtab-isabs-expandfullname-tuifullname commit 457ef222a3442ddd90030c9c63d829796b5fb02f Merge: ace21a8 e1b9727 Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Sat Jan 26 16:40:58 2013 +0100 Merge branch 'xfullpath-locsymtab-isabs' into xfullpath-locsymtab-isabs-expandfullname commit e1b97273be9b5acd08c4fd9a9cc18d2edc11b838 Merge: e836016 f464aa6 Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Sat Jan 26 16:40:57 2013 +0100 Merge branch 'xfullpath-locsymtab' into xfullpath-locsymtab-isabs commit f464aa691dae9080da5494115e987561e06b5bdf Merge: 0353548 4fde857 Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Sat Jan 26 16:40:57 2013 +0100 Merge branch 'xfullpath' into xfullpath-locsymtab commit 4fde8577a2f0addc4adf1f0e61c90866fb5bbd71 Merge: 29fa431 2f8f569 Author: Jan Kratochvil <jan.kratochvil@redhat.com> Date: Sat Jan 26 16:40:57 2013 +0100 Merge remote-tracking branch 'gdb/master' into xfullpath commit 2f8f5697e4df9a119ea0c71aa920756e72fd1775 Author: Alan Modra <amodra@bigpond.net.au> Date: Sat Jan 26 02:07:58 2013 +0000 * bfd.c (struct bfd_preserve, bfd_preserve_save, bfd_preserve_restore, bfd_preserve_finish): Move to.. * format.c: ..here, splitting out.. (bfd_reinit): ..this. New function. (bfd_check_format_matches): Use bfd_preserve_save/restore to keep bfd state for a match. * elfcode.h (elf_object_p): Don't use bfd_preserve_save/restore. * elfcore.h (elf_core_file_p): Likewise. * mach-o.c (bfd_mach_o_header_p): Likewise. * pef.c (bfd_pef_object_p, bfd_pef_xlib_object_p): Likewise. * xsym.c (bfd_sym_object_p): Likewise. * mmo.c (mmo_scan): Clear abfd->symcount. * opncls.c (_bfd_new_bfd): Use a smaller section hash table. * section.c (bfd_section_list_clear): Clear section_htab.count. * bfd-in2.h: Regenerate. commit 3efc239754ec850208ad8200747f6c5694ea2c82 Author: gdbadmin <gdbadmin@sourceware.org> Date: Sat Jan 26 00:00:04 2013 +0000 *** empty log message *** commit e4927fe267749765b1e92f285f21ee2f7762aa31 Author: Alan Modra <amodra@bigpond.net.au> Date: Fri Jan 25 23:00:05 2013 +0000 daily update commit f237e6333de59daa74df1273b9e7b22424a39088 Author: sivachandra <sivachandra> Date: Fri Jan 25 22:31:40 2013 +0000 * valops.c (find_overload_match): Remove unused argument 'lax'. * value.h: Remove unused argument 'lax' from the declaration of find_overload_match. * eval.c (value_subexp_standard): Do not pass a 'lax' argument to find_overload_match. * valarith.c (value_user_defined_cpp_op): Do not pass a 'lax' argument to find_overload_match. ----------------------------------------------------------------------- Summary of changes: bfd/ChangeLog | 18 +++++ bfd/ChangeLog-2012 | 1 + bfd/bfd-in2.h | 18 ----- bfd/bfd.c | 122 ------------------------------ bfd/elfcode.h | 20 ----- bfd/elfcore.h | 21 ----- bfd/format.c | 147 +++++++++++++++++++++++++++++++---- bfd/mach-o.c | 14 +--- bfd/mmo.c | 1 + bfd/opncls.c | 2 +- bfd/pef.c | 23 +----- bfd/section.c | 1 + bfd/version.h | 2 +- bfd/xsym.c | 14 +--- gdb/ChangeLog | 10 +++ gdb/dwarf2read.c | 15 +++- gdb/eval.c | 3 - gdb/psymtab.c | 16 +++- gdb/symfile.h | 4 +- gdb/symtab.c | 5 +- gdb/testsuite/ChangeLog | 8 ++ gdb/testsuite/gdb.base/restore.exp | 17 +---- gdb/testsuite/gdb.base/store.exp | 16 +--- gdb/valarith.c | 2 +- gdb/valops.c | 10 +-- gdb/value.h | 2 +- gdb/version.in | 2 +- 27 files changed, 223 insertions(+), 291 deletions(-) First 500 lines of diff: diff --git a/bfd/ChangeLog b/bfd/ChangeLog index e36a37c..b746060 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,21 @@ +2013-01-26 Alan Modra <amodra@gmail.com> + + * bfd.c (struct bfd_preserve, bfd_preserve_save, bfd_preserve_restore, + bfd_preserve_finish): Move to.. + * format.c: ..here, splitting out.. + (bfd_reinit): ..this. New function. + (bfd_check_format_matches): Use bfd_preserve_save/restore to + keep bfd state for a match. + * elfcode.h (elf_object_p): Don't use bfd_preserve_save/restore. + * elfcore.h (elf_core_file_p): Likewise. + * mach-o.c (bfd_mach_o_header_p): Likewise. + * pef.c (bfd_pef_object_p, bfd_pef_xlib_object_p): Likewise. + * xsym.c (bfd_sym_object_p): Likewise. + * mmo.c (mmo_scan): Clear abfd->symcount. + * opncls.c (_bfd_new_bfd): Use a smaller section hash table. + * section.c (bfd_section_list_clear): Clear section_htab.count. + * bfd-in2.h: Regenerate. + 2013-01-25 Michael Schewe <michael.schewe@gmx.net> * elf32-h8300.c (elf32_h8_relax_section): When checking for a diff --git a/bfd/ChangeLog-2012 b/bfd/ChangeLog-2012 index 9be65bf..2c7d9ea 100644 --- a/bfd/ChangeLog-2012 +++ b/bfd/ChangeLog-2012 @@ -629,6 +629,7 @@ 2012-10-13 H.J. Lu <hongjiu.lu@intel.com> + PR bfd/14430 * Makefile.am (LIBDL): Replace -ldl with @lt_cv_dlopen_libs@. * configure.in (lt_cv_dlopen_libs): AC_SUBST. * Makefile.in: Regenerated. diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index 489c3b5..5b04176 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -6247,24 +6247,6 @@ extern bfd_byte *bfd_get_relocated_section_contents bfd_boolean bfd_alt_mach_code (bfd *abfd, int alternative); -struct bfd_preserve -{ - void *marker; - void *tdata; - flagword flags; - const struct bfd_arch_info *arch_info; - struct bfd_section *sections; - struct bfd_section *section_last; - unsigned int section_count; - struct bfd_hash_table section_htab; -}; - -bfd_boolean bfd_preserve_save (bfd *, struct bfd_preserve *); - -void bfd_preserve_restore (bfd *, struct bfd_preserve *); - -void bfd_preserve_finish (bfd *, struct bfd_preserve *); - bfd_vma bfd_emul_get_maxpagesize (const char *); void bfd_emul_set_maxpagesize (const char *, bfd_vma); diff --git a/bfd/bfd.c b/bfd/bfd.c index eed1896..cf50b70 100644 --- a/bfd/bfd.c +++ b/bfd/bfd.c @@ -1687,128 +1687,6 @@ bfd_alt_mach_code (bfd *abfd, int alternative) } /* -CODE_FRAGMENT - -.struct bfd_preserve -.{ -. void *marker; -. void *tdata; -. flagword flags; -. const struct bfd_arch_info *arch_info; -. struct bfd_section *sections; -. struct bfd_section *section_last; -. unsigned int section_count; -. struct bfd_hash_table section_htab; -.}; -. -*/ - -/* -FUNCTION - bfd_preserve_save - -SYNOPSIS - bfd_boolean bfd_preserve_save (bfd *, struct bfd_preserve *); - -DESCRIPTION - When testing an object for compatibility with a particular - target back-end, the back-end object_p function needs to set - up certain fields in the bfd on successfully recognizing the - object. This typically happens in a piecemeal fashion, with - failures possible at many points. On failure, the bfd is - supposed to be restored to its initial state, which is - virtually impossible. However, restoring a subset of the bfd - state works in practice. This function stores the subset and - reinitializes the bfd. - -*/ - -bfd_boolean -bfd_preserve_save (bfd *abfd, struct bfd_preserve *preserve) -{ - preserve->tdata = abfd->tdata.any; - preserve->arch_info = abfd->arch_info; - preserve->flags = abfd->flags; - preserve->sections = abfd->sections; - preserve->section_last = abfd->section_last; - preserve->section_count = abfd->section_count; - preserve->section_htab = abfd->section_htab; - - if (! bfd_hash_table_init (&abfd->section_htab, bfd_section_hash_newfunc, - sizeof (struct section_hash_entry))) - return FALSE; - - abfd->tdata.any = NULL; - abfd->arch_info = &bfd_default_arch_struct; - abfd->flags &= BFD_FLAGS_SAVED; - abfd->sections = NULL; - abfd->section_last = NULL; - abfd->section_count = 0; - - return TRUE; -} - -/* -FUNCTION - bfd_preserve_restore - -SYNOPSIS - void bfd_preserve_restore (bfd *, struct bfd_preserve *); - -DESCRIPTION - This function restores bfd state saved by bfd_preserve_save. - If MARKER is non-NULL in struct bfd_preserve then that block - and all subsequently bfd_alloc'd memory is freed. - -*/ - -void -bfd_preserve_restore (bfd *abfd, struct bfd_preserve *preserve) -{ - bfd_hash_table_free (&abfd->section_htab); - - abfd->tdata.any = preserve->tdata; - abfd->arch_info = preserve->arch_info; - abfd->flags = preserve->flags; - abfd->section_htab = preserve->section_htab; - abfd->sections = preserve->sections; - abfd->section_last = preserve->section_last; - abfd->section_count = preserve->section_count; - - /* bfd_release frees all memory more recently bfd_alloc'd than - its arg, as well as its arg. */ - if (preserve->marker != NULL) - { - bfd_release (abfd, preserve->marker); - preserve->marker = NULL; - } -} - -/* -FUNCTION - bfd_preserve_finish - -SYNOPSIS - void bfd_preserve_finish (bfd *, struct bfd_preserve *); - -DESCRIPTION - This function should be called when the bfd state saved by - bfd_preserve_save is no longer needed. ie. when the back-end - object_p function returns with success. - -*/ - -void -bfd_preserve_finish (bfd *abfd ATTRIBUTE_UNUSED, struct bfd_preserve *preserve) -{ - /* It would be nice to be able to free more memory here, eg. old - tdata, but that's not possible since these blocks are sitting - inside bfd_alloc'd memory. The section hash is on a separate - objalloc. */ - bfd_hash_table_free (&preserve->section_htab); -} - -/* FUNCTION bfd_emul_get_maxpagesize diff --git a/bfd/elfcode.h b/bfd/elfcode.h index 30bda73..298ba35 100644 --- a/bfd/elfcode.h +++ b/bfd/elfcode.h @@ -495,13 +495,10 @@ elf_object_p (bfd *abfd) Elf_Internal_Shdr *i_shdrp; /* Section header table, internal form */ unsigned int shindex; const struct elf_backend_data *ebd; - struct bfd_preserve preserve; asection *s; bfd_size_type amt; const bfd_target *target; - preserve.marker = NULL; - /* Read in the ELF header in external format. */ if (bfd_bread (&x_ehdr, sizeof (x_ehdr), abfd) != sizeof (x_ehdr)) @@ -539,9 +536,6 @@ elf_object_p (bfd *abfd) goto got_wrong_format_error; } - if (!bfd_preserve_save (abfd, &preserve)) - goto got_no_match; - target = abfd->xvec; /* Allocate an instance of the elf_obj_tdata structure and hook it up to @@ -549,7 +543,6 @@ elf_object_p (bfd *abfd) if (! (*target->_bfd_set_format[bfd_object]) (abfd)) goto got_no_match; - preserve.marker = elf_tdata (abfd); /* Now that we know the byte order, swap in the rest of the header */ i_ehdrp = elf_elfheader (abfd); @@ -842,25 +835,12 @@ elf_object_p (bfd *abfd) s->flags |= SEC_DEBUGGING; } } - - bfd_preserve_finish (abfd, &preserve); return target; got_wrong_format_error: - /* There is way too much undoing of half-known state here. The caller, - bfd_check_format_matches, really shouldn't iterate on live bfd's to - check match/no-match like it does. We have to rely on that a call to - bfd_default_set_arch_mach with the previously known mach, undoes what - was done by the first bfd_default_set_arch_mach (with mach 0) here. - For this to work, only elf-data and the mach may be changed by the - target-specific elf_backend_object_p function. Note that saving the - whole bfd here and restoring it would be even worse; the first thing - you notice is that the cached bfd file position gets out of sync. */ bfd_set_error (bfd_error_wrong_format); got_no_match: - if (preserve.marker != NULL) - bfd_preserve_restore (abfd, &preserve); return NULL; } \f diff --git a/bfd/elfcore.h b/bfd/elfcore.h index 3d7d59f..8d5ec6d 100644 --- a/bfd/elfcore.h +++ b/bfd/elfcore.h @@ -84,11 +84,8 @@ elf_core_file_p (bfd *abfd) Elf_Internal_Phdr *i_phdrp; /* Elf program header, internal form. */ unsigned int phindex; const struct elf_backend_data *ebd; - struct bfd_preserve preserve; bfd_size_type amt; - preserve.marker = NULL; - /* Read in the ELF header in external format. */ if (bfd_bread (&x_ehdr, sizeof (x_ehdr), abfd) != sizeof (x_ehdr)) { @@ -123,13 +120,9 @@ elf_core_file_p (bfd *abfd) goto wrong; } - if (!bfd_preserve_save (abfd, &preserve)) - goto fail; - /* Give abfd an elf_obj_tdata. */ if (! (*abfd->xvec->_bfd_set_format[bfd_core]) (abfd)) goto fail; - preserve.marker = elf_tdata (abfd); /* Swap in the rest of the header, now that we have the byte order. */ i_ehdrp = elf_elfheader (abfd); @@ -318,24 +311,10 @@ elf_core_file_p (bfd *abfd) /* Save the entry point from the ELF header. */ bfd_get_start_address (abfd) = i_ehdrp->e_entry; - - bfd_preserve_finish (abfd, &preserve); return abfd->xvec; wrong: - /* There is way too much undoing of half-known state here. The caller, - bfd_check_format_matches, really shouldn't iterate on live bfd's to - check match/no-match like it does. We have to rely on that a call to - bfd_default_set_arch_mach with the previously known mach, undoes what - was done by the first bfd_default_set_arch_mach (with mach 0) here. - For this to work, only elf-data and the mach may be changed by the - target-specific elf_backend_object_p function. Note that saving the - whole bfd here and restoring it would be even worse; the first thing - you notice is that the cached bfd file position gets out of sync. */ bfd_set_error (bfd_error_wrong_format); - fail: - if (preserve.marker != NULL) - bfd_preserve_restore (abfd, &preserve); return NULL; } diff --git a/bfd/format.c b/bfd/format.c index 66b9051..36eeb85 100644 --- a/bfd/format.c +++ b/bfd/format.c @@ -95,6 +95,91 @@ bfd_check_format (bfd *abfd, bfd_format format) return bfd_check_format_matches (abfd, format, NULL); } +struct bfd_preserve +{ + void *marker; + void *tdata; + flagword flags; + const struct bfd_arch_info *arch_info; + struct bfd_section *sections; + struct bfd_section *section_last; + unsigned int section_count; + struct bfd_hash_table section_htab; +}; + +/* When testing an object for compatibility with a particular target + back-end, the back-end object_p function needs to set up certain + fields in the bfd on successfully recognizing the object. This + typically happens in a piecemeal fashion, with failures possible at + many points. On failure, the bfd is supposed to be restored to its + initial state, which is virtually impossible. However, restoring a + subset of the bfd state works in practice. This function stores + the subset. */ + +static bfd_boolean +bfd_preserve_save (bfd *abfd, struct bfd_preserve *preserve) +{ + preserve->tdata = abfd->tdata.any; + preserve->arch_info = abfd->arch_info; + preserve->flags = abfd->flags; + preserve->sections = abfd->sections; + preserve->section_last = abfd->section_last; + preserve->section_count = abfd->section_count; + preserve->section_htab = abfd->section_htab; + preserve->marker = bfd_alloc (abfd, 1); + if (preserve->marker == NULL) + return FALSE; + + return bfd_hash_table_init (&abfd->section_htab, bfd_section_hash_newfunc, + sizeof (struct section_hash_entry)); +} + +/* Clear out a subset of BFD state. */ + +static void +bfd_reinit (bfd *abfd) +{ + abfd->tdata.any = NULL; + abfd->arch_info = &bfd_default_arch_struct; + abfd->flags &= BFD_FLAGS_SAVED; + bfd_section_list_clear (abfd); +} + +/* Restores bfd state saved by bfd_preserve_save. */ + +static void +bfd_preserve_restore (bfd *abfd, struct bfd_preserve *preserve) +{ + bfd_hash_table_free (&abfd->section_htab); + + abfd->tdata.any = preserve->tdata; + abfd->arch_info = preserve->arch_info; + abfd->flags = preserve->flags; + abfd->section_htab = preserve->section_htab; + abfd->sections = preserve->sections; + abfd->section_last = preserve->section_last; + abfd->section_count = preserve->section_count; + + /* bfd_release frees all memory more recently bfd_alloc'd than + its arg, as well as its arg. */ + bfd_release (abfd, preserve->marker); + preserve->marker = NULL; +} + +/* Called when the bfd state saved by bfd_preserve_save is no longer + needed. */ + +static void +bfd_preserve_finish (bfd *abfd ATTRIBUTE_UNUSED, struct bfd_preserve *preserve) +{ + /* It would be nice to be able to free more memory here, eg. old + tdata, but that's not possible since these blocks are sitting + inside bfd_alloc'd memory. The section hash is on a separate + objalloc. */ + bfd_hash_table_free (&preserve->section_htab); + preserve->marker = NULL; +} + /* FUNCTION bfd_check_format_matches @@ -124,6 +209,7 @@ bfd_check_format_matches (bfd *abfd, bfd_format format, char ***matching) const bfd_target *save_targ, *right_targ, *ar_right_targ, *match_targ; int match_count, best_count, best_match; int ar_match_index; + struct bfd_preserve preserve; if (matching != NULL) *matching = NULL; @@ -138,12 +224,6 @@ bfd_check_format_matches (bfd *abfd, bfd_format format, char ***matching) if (abfd->format != bfd_unknown) return abfd->format == format; - /* Since the target type was defaulted, check them - all in the hope that one will be uniquely recognized. */ - save_targ = abfd->xvec; - match_count = 0; - ar_match_index = _bfd_target_vector_entries; - if (matching != NULL || *bfd_associated_vector != NULL) { bfd_size_type amt; @@ -154,14 +234,10 @@ bfd_check_format_matches (bfd *abfd, bfd_format format, char ***matching) return FALSE; } - right_targ = 0; - ar_right_targ = 0; - match_targ = 0; - best_match = 256; - best_count = 0; - /* Presume the answer is yes. */ abfd->format = format; + save_targ = abfd->xvec; + preserve.marker = NULL; /* If the target type was explicitly specified, just check that target. */ if (!abfd->target_defaulted) @@ -190,6 +266,16 @@ bfd_check_format_matches (bfd *abfd, bfd_format format, char ***matching) goto err_unrecog; } + /* Since the target type was defaulted, check them all in the hope + that one will be uniquely recognized. */ + right_targ = NULL; + ar_right_targ = NULL; + match_targ = NULL; + best_match = 256; + best_count = 0; + match_count = 0; + ar_match_index = _bfd_target_vector_entries; + for (target = bfd_target_vector; *target != NULL; target++) { const bfd_target *temp; @@ -201,7 +287,13 @@ bfd_check_format_matches (bfd *abfd, bfd_format format, char ***matching) || (*target)->match_priority > best_match) continue; - abfd->xvec = *target; /* Change BFD's target temporarily. */ + /* If we already tried a match, the bfd is modified and may + have sections attached, which will confuse the next + _bfd_check_format call. */ + bfd_reinit (abfd); + + /* Change BFD's target temporarily. */ + abfd->xvec = *target; if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) != 0) goto err_ret; @@ -214,7 +306,11 @@ bfd_check_format_matches (bfd *abfd, bfd_format format, char ***matching) temp = BFD_SEND_FMT (abfd, _bfd_check_format, (abfd)); if (temp) - match_targ = temp; + { + match_targ = temp; + if (preserve.marker != NULL) + bfd_preserve_finish (abfd, &preserve); + } if (temp && (abfd->format != bfd_archive || bfd_has_map (abfd))) { @@ -253,6 +349,9 @@ bfd_check_format_matches (bfd *abfd, bfd_format format, char ***matching) } else if (err != bfd_error_wrong_format) goto err_ret; hooks/post-receive -- Repository for Project Archer.
next reply other threads:[~2013-01-27 21:18 UTC|newest] Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top 2013-01-27 21:18 jkratoch [this message] -- strict thread matches above, loose matches on Subject: below -- 2013-01-27 22:01 jkratoch 2013-01-25 20:49 jkratoch 2013-01-25 18:06 jkratoch 2013-01-25 15:07 jkratoch
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20130127211818.11739.qmail@sourceware.org \ --to=jkratoch@sourceware.org \ --cc=archer-commits@sourceware.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).