public inbox for archer-commits@sourceware.org
help / color / mirror / Atom feed
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
Date: Wed, 04 Apr 2012 15:05:00 -0000	[thread overview]
Message-ID: <20120404150510.23810.qmail@sourceware.org> (raw)

The branch, archer-pmuldoon-python-backtrace has been updated
       via  4e0a42a813aa31156268765bba0219263a08f071 (commit)
       via  5886f28ed05f4cafcca634f8e2d699ecb53700c2 (commit)
       via  a8bd82d58ec5b90a545413893d6b88cc4a464265 (commit)
       via  d2b883ecf6e967e927b005b74eb44bd42bf80bb3 (commit)
       via  2427aa4bd15e88a2aba5fe710c7425c4957f1819 (commit)
       via  164d8e9ac9ec74d970aa42550000539710e96a8e (commit)
       via  a8ed34e234859774dd7ef60a34dfd95fb72a1799 (commit)
       via  67084d7a8630eca11cbebb352f893cb06eb77347 (commit)
       via  93cd7197cbfc7ca9ab6bfba32e737caf4c1ddbdd (commit)
       via  6a7b3ca186918388c00b959bc5682f6fd12411c4 (commit)
       via  48bd1722d3680f86fe861118aa54ef03c527e745 (commit)
       via  5cab1817f60351789dd78d051ad7c23839aab376 (commit)
       via  21c89a44d67e49062aced27d29370981f922ebbb (commit)
       via  5c3c12506e885797b4b8ad3f661f396b1a3dd6ac (commit)
       via  7a1bed16627dc124130fc8fae44892e70373e04d (commit)
       via  5841f3b2c5eddc10f6a3a1f07a082bf9daea9427 (commit)
       via  34b1f2f971ac17cc3d0b812c8c0017f8696030cb (commit)
       via  a6d3df81c4092878447204579025691aceec9682 (commit)
       via  3167997c2432e8ae4e21f1649bb968ad1c8c853c (commit)
       via  9a02193c10925ff26b4d2ce9f1326e098bb0ae62 (commit)
       via  7a63e9515491f21eaf07301df87d389def20e317 (commit)
       via  8f7c38639511cc0ec0314bbf6d14efaf2ad0bd85 (commit)
       via  bda1bace013cacd05e6c9b6ea5e9a097ec6c1d76 (commit)
       via  64119b65954deb48aabb006a63b2a07b8bad56d4 (commit)
       via  05e84e746af0ab4caabcf2dce10238eca015d6bc (commit)
       via  7ea6ee4a9b3cb896cbf718cb2b8c0f498b8d5801 (commit)
       via  279477758ac575031068f20b1c0938f23cd73cfd (commit)
       via  1f77461ac7709d026de460dc0ab0d2910c90eed3 (commit)
       via  aa4149e524e3107bb10fdc62d433aec5914ca581 (commit)
       via  e9dfdcd982542382219633d65c35e18957313cd1 (commit)
       via  5b409cbf08f7ba2f03eccdcaea1a592d9e69639c (commit)
       via  0d078fd58e0a0e1991f3fa59764d3880e2609c9d (commit)
       via  ecf3b10c2c47a04410adc90d6be5f6f26ee81d92 (commit)
       via  1eb23047aca59893799f82b0b4f881076ec2c2d2 (commit)
       via  8a84116d40cfbd737e40121497349bfb2e11ca06 (commit)
       via  c2fe8b175fb0ac61280a6bc3a50d8959247fc72c (commit)
       via  56afba236e344625b16c1488686df253c81b5439 (commit)
       via  4643799535d50ec03c6f204f493e0b8f84033d28 (commit)
       via  163b023b01b01b6e6a2142f6f0827c6ad12f6c9d (commit)
       via  4bd99b035e2894d769d9ab120c45c7b0fad57cf9 (commit)
       via  5b36f78d860593cdc228e425b2b4cd5c3c59f233 (commit)
       via  73e7ee4e16dd314cf92b2479c6daa71cb78ac50c (commit)
       via  d87ba317232961fe0e6d30858220c930a11a53b0 (commit)
       via  8f389cfa3c9c83ee6cad4c2dd2daf63f5c9951c4 (commit)
       via  8fbe13573758f2599c6387ebd01cf67be7b50990 (commit)
       via  a5f03e33295582aa7ad0c88fae45124c4fdf3ea9 (commit)
       via  b24a2c30426d9d41eca48e618c425ae5ca70a1c9 (commit)
       via  57b97e957b7741a6c9485e538746a0986cc030e6 (commit)
       via  6a649ab13c0db352922c7cbbacd5c60a4c6c9b43 (commit)
       via  d084403b007aafeb88eb28f81ae0e441b9a1de8a (commit)
       via  ff905874cd2c7903416f20d06e7da23883833d9a (commit)
       via  6825a12de5348c4f25ccc69a81d7459b98fe2ae1 (commit)
       via  843c3d4f1b1cfb512cf636dac7a7c8922cea1f75 (commit)
       via  86f222feb8ce47aad73750e6a1e75d27d787c3d3 (commit)
       via  b08a0c3476ee1a2dfa35893f3a5955a7b8e0ca28 (commit)
       via  3f7abee6f972f8fb37cf0ded16ef4ac5956d7f32 (commit)
       via  810fc7bf06e766f762bfafe71ae566395a54fcf4 (commit)
       via  7f0e7e8581446c677a376fecd11540533760a05e (commit)
       via  e7a153ccfdac0bb45958b19293fa3fb509b9a9e5 (commit)
       via  3eec4be3d4f50a8ccfa2cfb26efd673b105008a4 (commit)
       via  a7916980e89510b79f52f0bc9c58015318d81478 (commit)
       via  2d0291bf2118f556e2efda26662f23559eddd4ab (commit)
       via  6d7e224c93a0abf474b3a3a85cd0e8c68fec546d (commit)
       via  52c93ee1151eb1bdc576b9e100fae548d78433c4 (commit)
       via  655e820cf9a039ee55325d9e1f8423796d592b4b (commit)
       via  5eadef623d0ca84c44370864186ae85ac29f433d (commit)
       via  a012ecd57f4c62e42a6fcd1454541ea209df03e0 (commit)
       via  2d3bed914eb219769399d4be7c95885b9f0956a3 (commit)
       via  33c618f861d9ad56df661bd5759e03d16114682a (commit)
       via  109e341ea4ed4259a4cc49d16c8b9e7cb70e5f47 (commit)
       via  251109bb013218e172cc5d4f576b7d7f147a5aa1 (commit)
       via  7bcc0eb208e6c2de92c5f83499e12ecb1a6deea1 (commit)
       via  d3eeb91e4f75eacd77a6e4a51f58741299962cd9 (commit)
       via  87f14ecb42140507c841547fbd612023b9853bf1 (commit)
       via  8e2a924ccdd26b10576befd94558bdb4d5657f02 (commit)
       via  7253b9be40dec37c84e2dd54c150639cff7e7361 (commit)
       via  16aea4340523a95546d3757e0daf981e74ea7162 (commit)
      from  0846ff85a01a83ec8c1d8089a6f22813298d2db1 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email.

- Log -----------------------------------------------------------------
commit 4e0a42a813aa31156268765bba0219263a08f071
Merge: 0846ff8 5886f28
Author: Phil Muldoon <pmuldoon@redhat.com>
Date:   Wed Apr 4 16:04:55 2012 +0100

    Merge remote-tracking branch 'gdb/master' into archer-pmuldoon-python-backtrace

commit 5886f28ed05f4cafcca634f8e2d699ecb53700c2
Author: gdbadmin <gdbadmin@sourceware.org>
Date:   Wed Apr 4 00:00:32 2012 +0000

    *** empty log message ***

commit a8bd82d58ec5b90a545413893d6b88cc4a464265
Author: Alan Modra <amodra@bigpond.net.au>
Date:   Wed Apr 4 00:00:06 2012 +0000

    daily update

-----------------------------------------------------------------------

Summary of changes:
 bfd/ChangeLog                            |   71 +
 bfd/Makefile.am                          |    4 +
 bfd/Makefile.in                          |    5 +
 bfd/bfd-in.h                             |   12 +-
 bfd/bfd-in2.h                            |   12 +-
 bfd/configure                            |   30 +-
 bfd/configure.in                         |   30 +-
 bfd/elf-nacl.c                           |  205 +++
 bfd/elf-nacl.h                           |   24 +
 bfd/elf32-i386.c                         |   10 +
 bfd/elf32-m68k.c                         |    2 +-
 bfd/elf32-s390.c                         |  537 ++++----
 bfd/elf64-s390.c                         |  376 +++---
 bfd/elf64-x86-64.c                       |   14 +-
 bfd/elflink.c                            |    3 +-
 bfd/version.h                            |    2 +-
 gdb/.dir-locals.el                       |   24 +
 gdb/ChangeLog                            |  315 ++++-
 gdb/MAINTAINERS                          |    2 +-
 gdb/Makefile.in                          |    5 +-
 gdb/NEWS                                 |    4 +-
 gdb/ada-exp.y                            |   33 +-
 gdb/ada-lang.c                           |  128 +-
 gdb/ada-lang.h                           |   20 +-
 gdb/ada-valprint.c                       |   67 +-
 gdb/ada-varobj.c                         |  889 +++++++++++++
 gdb/ada-varobj.h                         |   56 +
 gdb/breakpoint.c                         |   28 +-
 gdb/cli/cli-setshow.c                    |   28 +-
 gdb/cp-valprint.c                        |   20 +-
 gdb/darwin-nat.c                         |   17 +
 gdb/disasm.c                             |   22 +-
 gdb/doc/ChangeLog                        |   21 +
 gdb/doc/gdb.texinfo                      |   28 +-
 gdb/gdbserver/ChangeLog                  |   41 +
 gdb/gdbserver/config.in                  |    6 +
 gdb/gdbserver/configure                  |   24 +
 gdb/gdbserver/configure.ac               |    4 +
 gdb/gdbserver/linux-arm-low.c            |    1 +
 gdb/gdbserver/linux-bfin-low.c           |    1 +
 gdb/gdbserver/linux-cris-low.c           |    1 +
 gdb/gdbserver/linux-crisv32-low.c        |    1 +
 gdb/gdbserver/linux-ia64-low.c           |   45 +-
 gdb/gdbserver/linux-low.c                |   42 +-
 gdb/gdbserver/linux-low.h                |    8 +
 gdb/gdbserver/linux-m32r-low.c           |    1 +
 gdb/gdbserver/linux-m68k-low.c           |    1 +
 gdb/gdbserver/linux-mips-low.c           |    1 +
 gdb/gdbserver/linux-ppc-low.c            |    1 +
 gdb/gdbserver/linux-s390-low.c           |    1 +
 gdb/gdbserver/linux-sh-low.c             |    1 +
 gdb/gdbserver/linux-sparc-low.c          |    1 +
 gdb/gdbserver/linux-tic6x-low.c          |    1 +
 gdb/gdbserver/linux-x86-low.c            |    1 +
 gdb/gdbserver/linux-xtensa-low.c         |    1 +
 gdb/i386-darwin-nat.c                    |   48 +-
 gdb/i386-darwin-tdep.c                   |    2 +-
 gdb/ia64-linux-nat.c                     |   47 +-
 gdb/infcmd.c                             |   10 +-
 gdb/mi/mi-cmd-stack.c                    |   22 +-
 gdb/mi/mi-main.c                         |   55 +-
 gdb/osdata.c                             |    5 +-
 gdb/python/py-inferior.c                 |   20 +-
 gdb/python/py-value.c                    |    3 +-
 gdb/python/python.c                      |   29 +-
 gdb/stack.c                              |   34 +-
 gdb/testsuite/ChangeLog                  |   23 +
 gdb/testsuite/gdb.cp/namespace.exp       |   10 +
 gdb/testsuite/gdb.linespec/ls-dollar.cc  |   26 +
 gdb/testsuite/gdb.linespec/ls-dollar.exp |   38 +
 gdb/testsuite/gdb.python/python.exp      |    3 +
 gdb/testsuite/gdb.trace/unavailable.exp  |    8 +-
 gdb/tracepoint.c                         |    3 -
 gdb/ui-out.c                             |   37 +-
 gdb/ui-out.h                             |   19 +-
 gdb/v850-tdep.c                          |  139 ++-
 gdb/valprint.c                           |   12 +-
 gdb/value.h                              |   14 +
 gdb/varobj.c                             |  282 ++++-
 gdb/version.in                           |    2 +-
 libiberty/ChangeLog                      |    9 +
 libiberty/cp-demangle.c                  |    5 +
 libiberty/stack-limit.c                  |    3 +-
 libiberty/testsuite/demangle-expected    |    6 +
 opcodes/ChangeLog                        |    5 +
 opcodes/bfin-dis.c                       |   11 +-
 sim/bfin/ChangeLog                       |   27 +
 sim/bfin/bfin-sim.c                      |   14 +-
 sim/bfin/devices.c                       |    1 +
 sim/bfin/dv-bfin_sic.c                   |    2 +-
 sim/bfin/interp.c                        |    4 +-
 sim/bfin/machs.c                         |    2 +-
 sim/common/ChangeLog                     |   11 +
 sim/common/hw-ports.c                    |    2 +-
 sim/common/sim-trace.c                   |   13 +-
 sim/common/sim-trace.h                   |   17 +
 sim/v850/ChangeLog                       |   55 +
 sim/v850/sim-main.h                      |  298 +++++-
 sim/v850/simops.c                        |  716 ++++++++++-
 sim/v850/simops.h                        |   47 +
 sim/v850/v850-dc                         |   29 +-
 sim/v850/v850.igen                       | 2081 +++++++++++++++++++++++++++++-
 102 files changed, 6447 insertions(+), 1030 deletions(-)
 create mode 100644 bfd/elf-nacl.c
 create mode 100644 bfd/elf-nacl.h
 create mode 100644 gdb/.dir-locals.el
 create mode 100644 gdb/ada-varobj.c
 create mode 100644 gdb/ada-varobj.h
 create mode 100644 gdb/testsuite/gdb.linespec/ls-dollar.cc
 create mode 100644 gdb/testsuite/gdb.linespec/ls-dollar.exp

First 500 lines of diff:
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 04c3b31..56a1121 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,74 @@
+2012-04-03  Roland McGrath  <mcgrathr@google.com>
+
+	* elf-nacl.c: New file.
+	* elf-nacl.h: New file.
+	* elf32-i386.c (elf_backend_modify_segment_map): Define for
+	bfd_elf32_i386_nacl_vec.
+	(elf_backend_modify_program_headers): Likewise.
+	* elf64-x86-64.c (elf_backend_modify_segment_map): Define for
+	bfd_elf64_x86_64_nacl_vec and bfd_elf32_x86_64_nacl_vec.
+	(elf_backend_modify_program_headers): Likewise.
+	* Makefile.am (BFD32_BACKENDS, BFD64_BACKENDS): Add elf-nacl.lo here.
+	(BFD32_BACKENDS_CFILES, BFD64_BACKENDS_CFILES): Add elf-nacl.c here.
+	* Makefile.in: Regenerated.
+	* configure.in (bfd_elf64_x86_64_nacl_vec): Add elf-nacl.o to tb here.
+	(bfd_elf32_x86_64_nacl_vec): Likewise.
+	(bfd_elf64_x86_64_vec, bfd_elf32_x86_64_vec): Likewise.
+	(bfd_elf64_x86_64_freebsd_vec, bfd_elf64_x86_64_sol2_vec): Likewise.
+	(bfd_elf64_l1om_vec, bfd_elf64_l1om_freebsd_vec): Likewise.
+	(bfd_elf64_k1om_vec, bfd_elf64_k1om_freebsd_vec): Likewise.
+	(bfd_elf32_i386_nacl_vec): Likewise.
+	(bfd_elf32_i386_sol2_vec, bfd_elf32_i386_freebsd_vec): Likewise.
+	(bfd_elf32_i386_vxworks_vec, bfd_elf32_i386_vec): Likewise.
+	* configure: Regenerated.
+
+2012-03-31  Andreas Schwab  <schwab@linux-m68k.org>
+
+	* elf32-m68k.c (elf_m68k_relocate_section): Allow
+	R_68K_TLS_LE{8,16,32} for PIE.
+
+2012-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
+
+	* elf64-s390.c: Fix several comments regarding PLT entry
+	description.
+	* elf32-s390.c: Likewise.
+
+2012-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
+
+	* elf64-s390.c: Use the section pointer shortcuts in
+	elf_link_hash_table and remove them from the target specific
+	variant.
+	* elf32-s390.c: Likewise.
+
+2012-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
+
+	* elf64-s390.c (elf_s390x_plt_entry, elf_s390x_first_plt_entry):
+	New definitions.
+	(PLT_PIC_ENTRY_WORD*, PLT_PIC12_ENTRY_WORD*): Remove.
+	(elf_s390_finish_dynamic_symbol): Use memcpy instead of bfd_put_32.
+	(elf_s390_finish_dynamic_sections): Likewise.
+	* elf32-s390.c (elf_s390_plt_entry, elf_s390_plt_pic_entry)
+	(elf_s390_plt_pic12_entry, elf_s390_plt_pic16_entry)
+	(elf_s390_plt_first_entry, elf_s390_plt_pic_first_entry): New definitions.
+	(PLT_PIC16_ENTRY_WORD*, PLT_ENTRY_WORD*)
+	(PLT_PIC_FIRST_ENTRY_WORD*, PLT_FIRST_ENTRY_WORD*): Remove.
+
+2012-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
+
+	* elf32-s390.c (struct elf_s390_dyn_relocs): Remove.
+	Rename all occurrences in the file to elf_dyn_relocs.
+	* elf64-s390.c: Likewise.
+
+2012-03-30  Alan Modra  <amodra@gmail.com>
+
+	* elflink.c (_bfd_elf_gc_mark_reloc): Don't delve into dynamic
+	libraries.
+
+2012-03-29  Alan Modra  <amodra@gmail.com>
+
+	* bfd-in.h (bfd_get_arch_size, bfd_get_sign_extend_vma): Delete.
+	* bfd-in2.h: Regenerate.
+
 2012-03-23  Alan Modra  <amodra@gmail.com>
 
 	* elf.c (assign_file_positions_for_non_load_sections): Don't warn
diff --git a/bfd/Makefile.am b/bfd/Makefile.am
index 8f4fbee..50c84ee 100644
--- a/bfd/Makefile.am
+++ b/bfd/Makefile.am
@@ -275,6 +275,7 @@ BFD32_BACKENDS = \
 	elf-ifunc.lo \
 	elf-m10200.lo \
 	elf-m10300.lo \
+	elf-nacl.lo \
 	elf-strtab.lo \
 	elf-vxworks.lo \
 	elf.lo \
@@ -461,6 +462,7 @@ BFD32_BACKENDS_CFILES = \
 	elf-ifunc.c \
 	elf-m10200.c \
 	elf-m10300.c \
+	elf-nacl.c \
 	elf-strtab.c \
 	elf-vxworks.c \
 	elf.c \
@@ -609,6 +611,7 @@ BFD64_BACKENDS = \
 	coff-x86_64.lo \
 	coff64-rs6000.lo \
 	demo64.lo \
+	elf-nacl.lo \
 	elf32-ia64.lo \
 	elf32-score.lo \
 	elf32-score7.lo \
@@ -645,6 +648,7 @@ BFD64_BACKENDS_CFILES = \
 	coff-x86_64.c \
 	coff64-rs6000.c \
 	demo64.c \
+	elf-nacl.c \
 	elf32-score.c \
 	elf32-score7.c \
 	elf64-alpha.c \
diff --git a/bfd/Makefile.in b/bfd/Makefile.in
index 437bafc..cf7b380 100644
--- a/bfd/Makefile.in
+++ b/bfd/Makefile.in
@@ -575,6 +575,7 @@ BFD32_BACKENDS = \
 	elf-ifunc.lo \
 	elf-m10200.lo \
 	elf-m10300.lo \
+	elf-nacl.lo \
 	elf-strtab.lo \
 	elf-vxworks.lo \
 	elf.lo \
@@ -761,6 +762,7 @@ BFD32_BACKENDS_CFILES = \
 	elf-ifunc.c \
 	elf-m10200.c \
 	elf-m10300.c \
+	elf-nacl.c \
 	elf-strtab.c \
 	elf-vxworks.c \
 	elf.c \
@@ -910,6 +912,7 @@ BFD64_BACKENDS = \
 	coff-x86_64.lo \
 	coff64-rs6000.lo \
 	demo64.lo \
+	elf-nacl.lo \
 	elf32-ia64.lo \
 	elf32-score.lo \
 	elf32-score7.lo \
@@ -946,6 +949,7 @@ BFD64_BACKENDS_CFILES = \
 	coff-x86_64.c \
 	coff64-rs6000.c \
 	demo64.c \
+	elf-nacl.c \
 	elf32-score.c \
 	elf32-score7.c \
 	elf64-alpha.c \
@@ -1341,6 +1345,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf-ifunc.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf-m10200.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf-m10300.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf-nacl.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf-strtab.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf-vxworks.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf.Plo@am__quote@
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index c331f3b..d50f7e9 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -1,8 +1,8 @@
 /* Main header file for the bfd library -- portable access to object files.
 
    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.
 
    Contributed by Cygnus Support.
 
@@ -694,14 +694,6 @@ extern bfd *bfd_elf_bfd_from_remote_memory
   (bfd *templ, bfd_vma ehdr_vma, bfd_vma *loadbasep,
    int (*target_read_memory) (bfd_vma vma, bfd_byte *myaddr, int len));
 
-/* Return the arch_size field of an elf bfd, or -1 if not elf.  */
-extern int bfd_get_arch_size
-  (bfd *);
-
-/* Return TRUE if address "naturally" sign extends, or -1 if not elf.  */
-extern int bfd_get_sign_extend_vma
-  (bfd *);
-
 extern struct bfd_section *_bfd_elf_tls_setup
   (bfd *, struct bfd_link_info *);
 
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 61513f2..07898be 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -8,8 +8,8 @@
 /* Main header file for the bfd library -- portable access to object files.
 
    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.
 
    Contributed by Cygnus Support.
 
@@ -701,14 +701,6 @@ extern bfd *bfd_elf_bfd_from_remote_memory
   (bfd *templ, bfd_vma ehdr_vma, bfd_vma *loadbasep,
    int (*target_read_memory) (bfd_vma vma, bfd_byte *myaddr, int len));
 
-/* Return the arch_size field of an elf bfd, or -1 if not elf.  */
-extern int bfd_get_arch_size
-  (bfd *);
-
-/* Return TRUE if address "naturally" sign extends, or -1 if not elf.  */
-extern int bfd_get_sign_extend_vma
-  (bfd *);
-
 extern struct bfd_section *_bfd_elf_tls_setup
   (bfd *, struct bfd_link_info *);
 
diff --git a/bfd/configure b/bfd/configure
index 58a57ba..dd274bd 100755
--- a/bfd/configure
+++ b/bfd/configure
@@ -15225,11 +15225,11 @@ do
     bfd_elf32_hppa_nbsd_vec)	tb="$tb elf32-hppa.lo elf32.lo $elf" ;;
     bfd_elf32_hppa_vec)		tb="$tb elf32-hppa.lo elf32.lo $elf" ;;
     bfd_elf32_i370_vec)		tb="$tb elf32-i370.lo elf32.lo $elf" ;;
-    bfd_elf32_i386_sol2_vec)	tb="$tb elf32-i386.lo elf-ifunc.lo elf-vxworks.lo elf32.lo $elf" ;;
-    bfd_elf32_i386_freebsd_vec)	tb="$tb elf32-i386.lo elf-ifunc.lo elf-vxworks.lo elf32.lo $elf" ;;
-    bfd_elf32_i386_nacl_vec)	tb="$tb elf32-i386.lo elf-ifunc.lo elf-vxworks.lo elf32.lo $elf" ;;
-    bfd_elf32_i386_vxworks_vec)	tb="$tb elf32-i386.lo elf-ifunc.lo elf-vxworks.lo elf32.lo $elf" ;;
-    bfd_elf32_i386_vec)		tb="$tb elf32-i386.lo elf-ifunc.lo elf-vxworks.lo elf32.lo $elf" ;;
+    bfd_elf32_i386_sol2_vec)	tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
+    bfd_elf32_i386_freebsd_vec)	tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
+    bfd_elf32_i386_nacl_vec)	tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
+    bfd_elf32_i386_vxworks_vec)	tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
+    bfd_elf32_i386_vec)		tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
     bfd_elf32_i860_little_vec)	tb="$tb elf32-i860.lo elf32.lo $elf" ;;
     bfd_elf32_i860_vec)		tb="$tb elf32-i860.lo elf32.lo $elf" ;;
     bfd_elf32_i960_vec)		tb="$tb elf32-i960.lo elf32.lo $elf" ;;
@@ -15364,16 +15364,16 @@ do
 				tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
     bfd_elf64_tradlittlemips_vec | bfd_elf64_tradlittlemips_freebsd_vec)
 				tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
-    bfd_elf64_x86_64_freebsd_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;;
-    bfd_elf64_x86_64_nacl_vec)	tb="$tb elf64-x86-64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;;
-    bfd_elf64_x86_64_sol2_vec)  tb="$tb elf64-x86-64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;;
-    bfd_elf64_x86_64_vec)	tb="$tb elf64-x86-64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;;
-    bfd_elf32_x86_64_vec)	tb="$tb elf64-x86-64.lo elf-ifunc.lo elf64.lo elf32.lo $elf"; target_size=64 ;;
-    bfd_elf32_x86_64_nacl_vec)	tb="$tb elf64-x86-64.lo elf-ifunc.lo elf64.lo elf32.lo $elf"; target_size=64 ;;
-    bfd_elf64_l1om_vec)		tb="$tb elf64-x86-64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;;
-    bfd_elf64_l1om_freebsd_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;;
-    bfd_elf64_k1om_vec)		tb="$tb elf64-x86-64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;;
-    bfd_elf64_k1om_freebsd_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;;
+    bfd_elf64_x86_64_freebsd_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
+    bfd_elf64_x86_64_nacl_vec)	tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
+    bfd_elf64_x86_64_sol2_vec)  tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
+    bfd_elf64_x86_64_vec)	tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
+    bfd_elf32_x86_64_vec)	tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo elf32.lo $elf"; target_size=64 ;;
+    bfd_elf32_x86_64_nacl_vec)	tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo elf32.lo $elf"; target_size=64 ;;
+    bfd_elf64_l1om_vec)		tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
+    bfd_elf64_l1om_freebsd_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
+    bfd_elf64_k1om_vec)		tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
+    bfd_elf64_k1om_freebsd_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
     bfd_mmo_vec)		tb="$tb mmo.lo" target_size=64 ;;
     bfd_powerpc_pe_vec)         tb="$tb pe-ppc.lo peigen.lo cofflink.lo" ;;
     bfd_powerpc_pei_vec)        tb="$tb pei-ppc.lo peigen.lo cofflink.lo" ;;
diff --git a/bfd/configure.in b/bfd/configure.in
index f443915..af3622b 100644
--- a/bfd/configure.in
+++ b/bfd/configure.in
@@ -711,11 +711,11 @@ do
     bfd_elf32_hppa_nbsd_vec)	tb="$tb elf32-hppa.lo elf32.lo $elf" ;;
     bfd_elf32_hppa_vec)		tb="$tb elf32-hppa.lo elf32.lo $elf" ;;
     bfd_elf32_i370_vec)		tb="$tb elf32-i370.lo elf32.lo $elf" ;;
-    bfd_elf32_i386_sol2_vec)	tb="$tb elf32-i386.lo elf-ifunc.lo elf-vxworks.lo elf32.lo $elf" ;;
-    bfd_elf32_i386_freebsd_vec)	tb="$tb elf32-i386.lo elf-ifunc.lo elf-vxworks.lo elf32.lo $elf" ;;
-    bfd_elf32_i386_nacl_vec)	tb="$tb elf32-i386.lo elf-ifunc.lo elf-vxworks.lo elf32.lo $elf" ;;
-    bfd_elf32_i386_vxworks_vec)	tb="$tb elf32-i386.lo elf-ifunc.lo elf-vxworks.lo elf32.lo $elf" ;;
-    bfd_elf32_i386_vec)		tb="$tb elf32-i386.lo elf-ifunc.lo elf-vxworks.lo elf32.lo $elf" ;;
+    bfd_elf32_i386_sol2_vec)	tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
+    bfd_elf32_i386_freebsd_vec)	tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
+    bfd_elf32_i386_nacl_vec)	tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
+    bfd_elf32_i386_vxworks_vec)	tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
+    bfd_elf32_i386_vec)		tb="$tb elf32-i386.lo elf-ifunc.lo elf-nacl.lo elf-vxworks.lo elf32.lo $elf" ;;
     bfd_elf32_i860_little_vec)	tb="$tb elf32-i860.lo elf32.lo $elf" ;;
     bfd_elf32_i860_vec)		tb="$tb elf32-i860.lo elf32.lo $elf" ;;
     bfd_elf32_i960_vec)		tb="$tb elf32-i960.lo elf32.lo $elf" ;;
@@ -850,16 +850,16 @@ do
 				tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
     bfd_elf64_tradlittlemips_vec | bfd_elf64_tradlittlemips_freebsd_vec)
 				tb="$tb elf64-mips.lo elf64.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo"; target_size=64 ;;
-    bfd_elf64_x86_64_freebsd_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;;
-    bfd_elf64_x86_64_nacl_vec)	tb="$tb elf64-x86-64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;;
-    bfd_elf64_x86_64_sol2_vec)  tb="$tb elf64-x86-64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;;
-    bfd_elf64_x86_64_vec)	tb="$tb elf64-x86-64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;;
-    bfd_elf32_x86_64_vec)	tb="$tb elf64-x86-64.lo elf-ifunc.lo elf64.lo elf32.lo $elf"; target_size=64 ;;
-    bfd_elf32_x86_64_nacl_vec)	tb="$tb elf64-x86-64.lo elf-ifunc.lo elf64.lo elf32.lo $elf"; target_size=64 ;;
-    bfd_elf64_l1om_vec)		tb="$tb elf64-x86-64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;;
-    bfd_elf64_l1om_freebsd_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;;
-    bfd_elf64_k1om_vec)		tb="$tb elf64-x86-64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;;
-    bfd_elf64_k1om_freebsd_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;;
+    bfd_elf64_x86_64_freebsd_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
+    bfd_elf64_x86_64_nacl_vec)	tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
+    bfd_elf64_x86_64_sol2_vec)  tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
+    bfd_elf64_x86_64_vec)	tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
+    bfd_elf32_x86_64_vec)	tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo elf32.lo $elf"; target_size=64 ;;
+    bfd_elf32_x86_64_nacl_vec)	tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo elf32.lo $elf"; target_size=64 ;;
+    bfd_elf64_l1om_vec)		tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
+    bfd_elf64_l1om_freebsd_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
+    bfd_elf64_k1om_vec)		tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
+    bfd_elf64_k1om_freebsd_vec) tb="$tb elf64-x86-64.lo elf-ifunc.lo elf-nacl.lo elf64.lo $elf"; target_size=64 ;;
     bfd_mmo_vec)		tb="$tb mmo.lo" target_size=64 ;;
     bfd_powerpc_pe_vec)         tb="$tb pe-ppc.lo peigen.lo cofflink.lo" ;;
     bfd_powerpc_pei_vec)        tb="$tb pei-ppc.lo peigen.lo cofflink.lo" ;;
diff --git a/bfd/elf-nacl.c b/bfd/elf-nacl.c
new file mode 100644
index 0000000..3ba7f55
--- /dev/null
+++ b/bfd/elf-nacl.c
@@ -0,0 +1,205 @@
+/* Native Client support for ELF
+   Copyright 2012 Free Software Foundation, Inc.
+
+   This file is part of BFD, the Binary File Descriptor library.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+   MA 02111-1307, USA.  */
+
+#include "sysdep.h"
+#include "bfd.h"
+#include "elf-bfd.h"
+#include "elf-nacl.h"
+#include "elf/common.h"
+#include "elf/internal.h"
+
+static bfd_boolean
+segment_executable (struct elf_segment_map *seg)
+{
+  if (seg->p_flags_valid)
+    return (seg->p_flags & PF_X) != 0;
+  else
+    {
+      /* The p_flags value has not been computed yet,
+         so we have to look through the sections.  */
+      unsigned int i;
+      for (i = 0; i < seg->count; ++i)
+        if (seg->sections[i]->flags & SEC_CODE)
+          return TRUE;
+    }
+  return FALSE;
+}
+
+static bfd_boolean
+segment_nonexecutable_and_has_contents (struct elf_segment_map *seg)
+{
+  bfd_boolean any_contents = FALSE;
+  unsigned int i;
+  for (i = 0; i < seg->count; ++i)
+    {
+      if (seg->sections[i]->flags & SEC_CODE)
+        return FALSE;
+      if (seg->sections[i]->flags & SEC_HAS_CONTENTS)
+        any_contents = TRUE;
+    }
+  return any_contents;
+}
+
+
+/* We permute the segment_map to get BFD to do the file layout we want:
+   The first non-executable PT_LOAD segment appears first in the file
+   and contains the ELF file header and phdrs.  */
+bfd_boolean
+nacl_modify_segment_map (bfd *abfd, struct bfd_link_info *info ATTRIBUTE_UNUSED)
+{
+  struct elf_segment_map **m = &elf_tdata (abfd)->segment_map;
+  struct elf_segment_map **first_load = NULL;
+  struct elf_segment_map **last_load = NULL;
+  bfd_boolean moved_headers = FALSE;
+
+  while (*m != NULL)
+    {
+      struct elf_segment_map *seg = *m;
+
+      if (seg->p_type == PT_LOAD)
+        {
+          /* First, we're just finding the earliest PT_LOAD.
+             By the normal rules, this will be the lowest-addressed one.
+             We only have anything interesting to do if it's executable.  */
+          last_load = m;
+          if (first_load == NULL)
+            {
+              if (!segment_executable (*m))
+                return TRUE;
+              first_load = m;
+            }
+          /* Now that we've noted the first PT_LOAD, we're looking for
+             the first non-executable PT_LOAD with a nonempty p_filesz.  */
+          else if (!moved_headers
+                   && segment_nonexecutable_and_has_contents (seg))
+            {
+              /* This is the one we were looking for!
+
+                 First, clear the flags on previous segments that
+                 say they include the file header and phdrs.  */
+              struct elf_segment_map *prevseg;
+              for (prevseg = *first_load;
+                   prevseg != seg;
+                   prevseg = prevseg->next)
+                if (prevseg->p_type == PT_LOAD)
+                  {
+                    prevseg->includes_filehdr = 0;
+                    prevseg->includes_phdrs = 0;
+                  }
+
+              /* This segment will include those headers instead.  */
+              seg->includes_filehdr = 1;
+              seg->includes_phdrs = 1;
+
+              moved_headers = TRUE;
+            }
+        }
+
+      m = &seg->next;
+    }
+
+  if (first_load != last_load && moved_headers)
+    {
+      /* Now swap the first and last PT_LOAD segments'
+         positions in segment_map.  */
+      struct elf_segment_map *first = *first_load;
+      struct elf_segment_map *last = *last_load;
+      *first_load = first->next;
+      first->next = last->next;
+      last->next = first;
+    }
+
+  return TRUE;
+}
+
+/* After nacl_modify_segment_map has done its work, the file layout has
+   been done as we wanted.  But the PT_LOAD phdrs are no longer in the
+   proper order for the ELF rule that they must appear in ascending address
+   order.  So find the two segments we swapped before, and swap them back.  */
+bfd_boolean
+nacl_modify_program_headers (bfd *abfd,
+                             struct bfd_link_info *info ATTRIBUTE_UNUSED)
+{
+  struct elf_segment_map **m = &elf_tdata (abfd)->segment_map;
+  Elf_Internal_Phdr *phdr = elf_tdata (abfd)->phdr;
+  Elf_Internal_Phdr *p = phdr;
+
+  /* Find the PT_LOAD that contains the headers (should be the first).  */
+  while (*m != NULL)
+    {
+      if ((*m)->p_type == PT_LOAD && (*m)->includes_filehdr)
+        break;
+
+      m = &(*m)->next;
+      ++p;
+    }
+
+  if (*m != NULL)
+    {
+      struct elf_segment_map **first_load_seg = m;
+      Elf_Internal_Phdr *first_load_phdr = p;
+      struct elf_segment_map **next_load_seg = NULL;
+      Elf_Internal_Phdr *next_load_phdr = NULL;
+
+      /* Now move past that first one and find the PT_LOAD that should be
+         before it by address order.  */
+
+      m = &(*m)->next;
+      ++p;
+
+      while ((*m) != NULL)
+        {
+          if (p->p_type == PT_LOAD && p->p_vaddr < first_load_phdr->p_vaddr)
+            {
+              next_load_seg = m;
+              next_load_phdr = p;
+              break;
+            }
+
+          m = &(*m)->next;
+          ++p;
+        }
+


hooks/post-receive
--
Repository for Project Archer.


             reply	other threads:[~2012-04-04 15:05 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-04 15:05 pmuldoon [this message]
  -- strict thread matches above, loose matches on Subject: below --
2013-02-26 10:18 pmuldoon
2013-02-02 13:02 pmuldoon
2013-01-04 11:43 pmuldoon
2012-11-28 14:55 pmuldoon
2012-11-23 16:55 pmuldoon
2012-11-09 15:09 pmuldoon
2012-10-22 13:01 pmuldoon
2012-09-07 13:38 pmuldoon
2012-09-04 12:17 pmuldoon
2012-09-04 12:13 pmuldoon
2012-08-30 16:58 pmuldoon
2012-08-23 14:56 pmuldoon
2012-08-14 16:08 pmuldoon
2012-08-09 17:02 pmuldoon
2012-08-01 17:00 pmuldoon
2012-07-23 19:41 pmuldoon
2012-07-19 12:40 pmuldoon
2012-07-18 14:22 pmuldoon
2012-07-11 14:21 pmuldoon
2012-06-25 17:43 pmuldoon
2012-06-21 11:12 pmuldoon
2012-06-14 10:27 pmuldoon
2012-06-13 13:52 pmuldoon
2012-06-06 10:42 pmuldoon
2012-05-22 12:36 pmuldoon
2012-04-26 13:31 pmuldoon
2012-04-10 19:22 pmuldoon
2012-03-27 16:42 pmuldoon
2012-03-23 14:48 pmuldoon
2012-03-19 15:08 pmuldoon
2012-03-12 13:42 pmuldoon
2012-03-05 15:58 pmuldoon
2012-02-20 17:52 pmuldoon
2012-02-13 10:41 pmuldoon
2012-01-23 16:39 pmuldoon

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=20120404150510.23810.qmail@sourceware.org \
    --to=pmuldoon@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: link
Be 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).