public inbox for archer-commits@sourceware.org
help / color / mirror / Atom feed
* [SCM]  archer: Merge commit 'origin/archer-tromey-delayed-symfile' into archer
@ 2009-02-26 20:20 jkratoch
  0 siblings, 0 replies; 4+ messages in thread
From: jkratoch @ 2009-02-26 20:20 UTC (permalink / raw)
  To: archer-commits

The branch, archer has been updated
       via  7fe6d46b16cab13a5243e8bb8952c666eacce40a (commit)
       via  959bb592d557a9536b6586792c00579359b49318 (commit)
       via  9f08a3932eefd332b72483ccec1cad049c0c7c4a (commit)
       via  531484da0ccaffb64616f5f892a2c1eec3c2bd30 (commit)
       via  836fe91a251f7419730b7eaf88780eafd2ae738d (commit)
       via  e46198590298ad68582afb2706fdedce886ef3f6 (commit)
       via  a89c5e97893fc81c89c26261b3e8a34fd111f356 (commit)
       via  7e7604fcf501d9f7d00488c3fceb7c814ec9496e (commit)
       via  15926f8a4c3311b90d68392ace929b2808612334 (commit)
       via  68f4aeee38798fbffd52a8f42158594bc849c4a2 (commit)
       via  5f8910120be450edecfbcafa65481c8f29fc0f4c (commit)
       via  32f597d669aec6e7bb5b425b4cb0d29a1023d295 (commit)
       via  2ffc14e5f1d3d75cbfb665474241ebd0975df2e0 (commit)
       via  8dddf6c0682cd4f501b9414af2ee41311559bb62 (commit)
       via  5e61b2ecffe82f6eccc0431ef6e54d38814430d2 (commit)
       via  d7f41c5c6767e858b0587a42b689f7f4c070172b (commit)
       via  8e207759a453dc45961f218d335518464f91f27d (commit)
       via  5b8e2944be405117e44f9d5b1b87bf3b7a796651 (commit)
       via  f585f4c883101a6b1a0d7f324ddd71b3bfa77be7 (commit)
       via  41882f54dd221b655fa2dfb2ff0ac511a41717e7 (commit)
       via  d1325b19cb505b2aa0e446c89702b1b940a6c2ca (commit)
       via  5c84b9312b5dc42b945bd3df3f41a34ad4a84ef1 (commit)
       via  2664777b6b4a69a4a3fc72143a4fbaaf59183d1e (commit)
       via  37f998e0df428dcf831eeedf5459ee663e5cd05a (commit)
       via  bb1d4f60bb5376c3ce6a686035bc6f91bbcd1625 (commit)
       via  9efefe92da03895d9ee3ce840293416bcfc2b06b (commit)
      from  3a4e2dcda1aa30cf537279ec8edcc62d519e1165 (commit)

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

- Log -----------------------------------------------------------------
commit 7fe6d46b16cab13a5243e8bb8952c666eacce40a
Merge: 3a4e2dcda1aa30cf537279ec8edcc62d519e1165 959bb592d557a9536b6586792c00579359b49318
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date:   Thu Feb 26 21:19:27 2009 +0100

    Merge commit 'origin/archer-tromey-delayed-symfile' into archer

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

Summary of changes:
 bfd/ChangeLog         |   74 +
 bfd/elf.c             |   13 +-
 bfd/elf32-arm.c       |  551 ++-
 bfd/elf32-xtensa.c    |   18 +-
 bfd/version.h         |    2 +-
 gdb/ChangeLog         |   49 +
 gdb/breakpoint.c      |    5 +-
 gdb/cli/cli-script.c  |    2 +-
 gdb/gnu-nat.c         |    4 +-
 gdb/infcmd.c          |   10 +-
 gdb/inflow.c          |    2 +-
 gdb/infrun.c          |    4 +-
 gdb/maint.c           |    2 +-
 gdb/memattr.c         |    2 +-
 gdb/monitor.c         |    4 +-
 gdb/nto-procfs.c      |    4 +-
 gdb/printcmd.c        |    4 +-
 gdb/remote-mips.c     |    4 +-
 gdb/remote-sim.c      |    5 +-
 gdb/remote.c          |    4 +-
 gdb/solib-irix.c      |    2 +-
 gdb/solib-osf.c       |    2 +-
 gdb/solib-pa64.c      |    2 +-
 gdb/solib-som.c       |    2 +-
 gdb/solib-svr4.c      |    2 +-
 gdb/symfile.c         |    2 +-
 gdb/target.c          |    2 +-
 gdb/top.c             |    6 +-
 gdb/tracepoint.c      |    2 +-
 gdb/version.in        |    2 +-
 gdb/windows-nat.c     |    4 +-
 include/elf/ChangeLog |    8 +
 include/elf/common.h  |    8 +-
 opcodes/ChangeLog     |   18 +
 opcodes/arm-dis.c     |    8 +-
 opcodes/i386-gen.c    |    3 -
 opcodes/i386-init.h   |   97 +-
 opcodes/i386-opc.h    |    6 +-
 opcodes/i386-opc.tbl  |    3 -
 opcodes/i386-tbl.h    |11240 ++++++++++++++++++++++++------------------------
 40 files changed, 6225 insertions(+), 5957 deletions(-)

First 500 lines of diff:
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 1c4717f..bdd2f80 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,75 @@
+2009-02-26  Christophe Lyon  <christophe.lyon@st.com>
+
+	* elf32-arm.c (stub_reloc_type): Removed.
+	(insn_sequence): Renamed reloc_type field to r_type.
+	(elf32_arm_stub_long_branch_v4t_arm_thumb_pic): New stub.
+	(elf32_arm_stub_long_branch_v4t_thumb_arm_pic): Likewise.
+	(elf32_arm_stub_long_branch_thumb_only_pic): Likewise.
+	(elf32_arm_stub_type): Add new enum entries for the new stubs.
+	(arm_stub_is_thumb): Catch new stubs.
+	(arm_type_of_stub): Handle new stubs.
+	(arm_size_one_stub): Use ARRAY_SIZE. Handle new stubs.
+	(bfd_elf32_arm_process_before_allocation): Remove useless
+	condition.
+
+2009-02-25  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf.c (elf_find_function): Use is_function_type to check
+	function symbol.
+
+2009-02-24  Sterling Augustine  <sterling@jaw.hq.tensilica.com>
+
+	* xtensa-modules.c: Revert to previous version 1.11 due
+	to inadvertant commit.
+
+2009-02-24  Sterling Augustine  <sterling@tensilica.com>
+
+	* elf32-xtensa.c (text_action_add): Separate test for action
+	type.  Break if saved action is ta_widen_insn at same offset.
+
+2009-02-24  Daniel Jacobowitz  <dan@codesourcery.com>
+
+	* elf32-arm.c (elf32_arm_stub_long_branch_any_any_pic): Rename
+	to elf32_arm_stub_long_branch_any_arm_pic.
+	(elf32_arm_stub_long_branch_any_thumb_pic): New.
+	(enum elf32_arm_stub_type, arm_type_of_stub)
+	(arm_size_one_stub): Handle any to ARM PIC and any to Thumb PIC
+	separately.
+
+2009-02-24  Joseph Myers  <joseph@codesourcery.com>
+
+	* elf32-arm.c (PREV_SEC): Update comment.
+	(group_sections): Rename argument to stubs_always_after_branch.
+	Reverse the list and place stubs at the end of input sections.
+	Undefine NEXT_SEC.
+	(elf32_arm_size_stubs): Update to use stubs_always_after_branch.
+
+2009-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
+
+	* elf32-arm.c (arm_build_one_stub): Initialize stub_reloc_offset.
+	Fix formatting.
+	(arm_size_one_stub): Remove unnecessary break.
+	(arm_map_one_stub): Fix formatting.  Return after BFD_FAIL.
+
+2009-02-23  Christophe Lyon  <christophe.lyon@st.com>
+
+	* elf32-arm.c (stub_insn_type): New type.
+	(stub_reloc_type): Likewise.
+	(insn_sequence): Likewise.
+	(elf32_arm_stub_long_branch_any_any): Encode using insn_sequence.
+	(elf32_arm_stub_long_branch_v4t_arm_thumb): Likewise.
+	(elf32_arm_stub_long_branch_thumb_only): Likewise.
+	(elf32_arm_stub_long_branch_v4t_thumb_arm): Likewise.
+	(elf32_arm_stub_short_branch_v4t_thumb_arm): Likewise.
+	(elf32_arm_stub_long_branch_any_any_pic): Likewise.
+	(elf32_arm_stub_hash_entry): Add new helper fields.
+	(stub_hash_newfunc): Initialize these new fields.
+	(arm_build_one_stub): Encode Arm and Thumb instructions separately
+	to take endianness into account.
+	(arm_size_one_stub): Compute size of stubs using insn_sequence.
+	(arm_map_one_stub): Code is now more generic, thanks to
+	insn_sequence.
+
 2009-02-23  Christophe Lyon  <christophe.lyon@st.com>
 
 	* elf32-arm.c (elf32_arm_stub_long_branch_thumb_only): Fix stub
@@ -11,6 +83,8 @@
 	(arm_map_one_stub): Likewise.
 
 2009-02-23  Tristan Gingold  <gingold@adacore.com>
+	    Eric Botcazou  <ebotcazou@adacore.com>
+	    Douglas B Rupp  <rupp@gnat.com>
 
 	* vms.h: Update copyright year, fix comments, reorder declarations.
 	(_bfd_save_vms_section): Remove the prototype.
diff --git a/bfd/elf.c b/bfd/elf.c
index 44af469..97ac5cb 100644
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -7041,7 +7041,7 @@ _bfd_elf_set_arch_mach (bfd *abfd,
    for error reporting.  */
 
 static bfd_boolean
-elf_find_function (bfd *abfd ATTRIBUTE_UNUSED,
+elf_find_function (bfd *abfd,
 		   asection *section,
 		   asymbol **symbols,
 		   bfd_vma offset,
@@ -7061,6 +7061,7 @@ elf_find_function (bfd *abfd ATTRIBUTE_UNUSED,
      make a better choice of file name for local symbols by ignoring
      file symbols appearing after a given local symbol.  */
   enum { nothing_seen, symbol_seen, file_after_symbol_seen } state;
+  const struct elf_backend_data *bed = get_elf_backend_data (abfd);
 
   filename = NULL;
   func = NULL;
@@ -7071,20 +7072,22 @@ elf_find_function (bfd *abfd ATTRIBUTE_UNUSED,
   for (p = symbols; *p != NULL; p++)
     {
       elf_symbol_type *q;
+      unsigned int type;
 
       q = (elf_symbol_type *) *p;
 
-      switch (ELF_ST_TYPE (q->internal_elf_sym.st_info))
+      type = ELF_ST_TYPE (q->internal_elf_sym.st_info);
+      switch (type)
 	{
-	default:
-	  break;
 	case STT_FILE:
 	  file = &q->symbol;
 	  if (state == symbol_seen)
 	    state = file_after_symbol_seen;
 	  continue;
+	default:
+	  if (!bed->is_function_type (type))
+	    break;
 	case STT_NOTYPE:
-	case STT_FUNC:
 	  if (bfd_get_section (&q->symbol) == section
 	      && q->symbol.value >= low_func
 	      && q->symbol.value <= offset)
diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
index 6cf3322..2527e5e 100644
--- a/bfd/elf32-arm.c
+++ b/bfd/elf32-arm.c
@@ -2010,63 +2010,130 @@ static const bfd_vma elf32_arm_symbian_plt_entry [] =
 #define THM2_MAX_FWD_BRANCH_OFFSET (((1 << 24) - 2) + 4)
 #define THM2_MAX_BWD_BRANCH_OFFSET (-(1 << 24) + 4)
 
+enum stub_insn_type
+  {
+    THUMB16_TYPE = 1,
+    THUMB32_TYPE,
+    ARM_TYPE,
+    DATA_TYPE
+  };
+
+#define THUMB16_INSN(X)    {(X), THUMB16_TYPE, R_ARM_NONE, 0}
+#define THUMB32_INSN(X)    {(X), THUMB32_TYPE, R_ARM_NONE, 0}
+#define ARM_INSN(X)        {(X), ARM_TYPE, R_ARM_NONE, 0}
+#define ARM_REL_INSN(X, Z) {(X), ARM_TYPE, R_ARM_JUMP24, (Z)}
+#define DATA_WORD(X,Y,Z)   {(X), DATA_TYPE, (Y), (Z)}
+
+typedef struct
+{
+  bfd_vma data;
+  enum stub_insn_type type;
+  unsigned int r_type;
+  int reloc_addend;
+}  insn_sequence;
+
 /* Arm/Thumb -> Arm/Thumb long branch stub. On V5T and above, use blx
    to reach the stub if necessary.  */
-static const bfd_vma elf32_arm_stub_long_branch_any_any[] =
+static const insn_sequence elf32_arm_stub_long_branch_any_any[] =
   {
-    0xe51ff004,         /* ldr   pc, [pc, #-4] */
-    0x00000000,         /* dcd   R_ARM_ABS32(X) */
+    ARM_INSN(0xe51ff004),            /* ldr   pc, [pc, #-4] */
+    DATA_WORD(0, R_ARM_ABS32, 0),    /* dcd   R_ARM_ABS32(X) */
   };
 
 /* V4T Arm -> Thumb long branch stub. Used on V4T where blx is not
    available.  */
-static const bfd_vma elf32_arm_stub_long_branch_v4t_arm_thumb[] =
+static const insn_sequence elf32_arm_stub_long_branch_v4t_arm_thumb[] =
   {
-    0xe59fc000,         /* ldr   ip, [pc, #0] */
-    0xe12fff1c,         /* bx    ip */
-    0x00000000,         /* dcd   R_ARM_ABS32(X) */
+    ARM_INSN(0xe59fc000),            /* ldr   ip, [pc, #0] */
+    ARM_INSN(0xe12fff1c),            /* bx    ip */
+    DATA_WORD(0, R_ARM_ABS32, 0),    /* dcd   R_ARM_ABS32(X) */
   };
 
 /* Thumb -> Thumb long branch stub. Used on architectures which
    support only this mode, or on V4T where it is expensive to switch
    to ARM.  */
-static const bfd_vma elf32_arm_stub_long_branch_thumb_only[] =
+static const insn_sequence elf32_arm_stub_long_branch_thumb_only[] =
   {
-    0x4802b401,         /* push {r0} */
-                        /* ldr  r0, [pc, #8] */
-    0xbc014684,         /* mov  ip, r0 */
-                        /* pop  {r0} */
-    0xbf004760,         /* bx   ip */
-                        /* nop */
-    0x00000000,         /* dcd  R_ARM_ABS32(X) */
+    THUMB16_INSN(0xb401),             /* push {r0} */
+    THUMB16_INSN(0x4802),             /* ldr  r0, [pc, #8] */
+    THUMB16_INSN(0x4684),             /* mov  ip, r0 */
+    THUMB16_INSN(0xbc01),             /* pop  {r0} */
+    THUMB16_INSN(0x4760),             /* bx   ip */
+    THUMB16_INSN(0xbf00),             /* nop */
+    DATA_WORD(0, R_ARM_ABS32, 0),     /* dcd  R_ARM_ABS32(X) */
   };
 
 /* V4T Thumb -> ARM long branch stub. Used on V4T where blx is not
    available.  */
-static const bfd_vma elf32_arm_stub_long_branch_v4t_thumb_arm[] =
+static const insn_sequence elf32_arm_stub_long_branch_v4t_thumb_arm[] =
   {
-    0x46c04778,         /* bx   pc */
-                        /* nop   */
-    0xe51ff004,         /* ldr   pc, [pc, #-4] */
-    0x00000000,         /* dcd   R_ARM_ABS32(X) */
+    THUMB16_INSN(0x4778),             /* bx   pc */
+    THUMB16_INSN(0x46c0),             /* nop   */
+    ARM_INSN(0xe51ff004),             /* ldr   pc, [pc, #-4] */
+    DATA_WORD(0, R_ARM_ABS32, 0),     /* dcd   R_ARM_ABS32(X) */
   };
 
 /* V4T Thumb -> ARM short branch stub. Shorter variant of the above
    one, when the destination is close enough.  */
-static const bfd_vma elf32_arm_stub_short_branch_v4t_thumb_arm[] =
+static const insn_sequence elf32_arm_stub_short_branch_v4t_thumb_arm[] =
   {
-    0x46c04778,         /* bx   pc */
-                        /* nop   */
-    0xea000000,         /* b    (X) */
+    THUMB16_INSN(0x4778),             /* bx   pc */
+    THUMB16_INSN(0x46c0),             /* nop   */
+    ARM_REL_INSN(0xea000000, -8),     /* b    (X-8) */
   };
 
-/* ARM/Thumb -> ARM/Thumb long branch stub, PIC. On V5T and above, use
+/* ARM/Thumb -> ARM long branch stub, PIC.  On V5T and above, use
    blx to reach the stub if necessary.  */
-static const bfd_vma elf32_arm_stub_long_branch_any_any_pic[] =
+static const insn_sequence elf32_arm_stub_long_branch_any_arm_pic[] =
+  {
+    ARM_INSN(0xe59fc000),             /* ldr   r12, [pc] */
+    ARM_INSN(0xe08ff00c),             /* add   pc, pc, ip */
+    DATA_WORD(0, R_ARM_REL32, -4),    /* dcd   R_ARM_REL32(X-4) */
+  };
+
+/* ARM/Thumb -> Thumb long branch stub, PIC.  On V5T and above, use
+   blx to reach the stub if necessary.  We can not add into pc;
+   it is not guaranteed to mode switch (different in ARMv6 and
+   ARMv7).  */
+static const insn_sequence elf32_arm_stub_long_branch_any_thumb_pic[] =
+  {
+    ARM_INSN(0xe59fc004),             /* ldr   r12, [pc, #4] */
+    ARM_INSN(0xe08fc00c),             /* add   ip, pc, ip */
+    ARM_INSN(0xe12fff1c),             /* bx    ip */
+    DATA_WORD(0, R_ARM_REL32, 0),     /* dcd   R_ARM_REL32(X) */
+  };
+
+/* V4T ARM -> ARM long branch stub, PIC.  */
+static const insn_sequence elf32_arm_stub_long_branch_v4t_arm_thumb_pic[] =
+  {
+    ARM_INSN(0xe59fc004),             /* ldr   ip, [pc, #4] */
+    ARM_INSN(0xe08fc00c),             /* add   ip, pc, ip */
+    ARM_INSN(0xe12fff1c),             /* bx    ip */
+    DATA_WORD(0, R_ARM_REL32, 0),     /* dcd   R_ARM_REL32(X) */
+  };
+
+/* V4T Thumb -> ARM long branch stub, PIC.  */
+static const insn_sequence elf32_arm_stub_long_branch_v4t_thumb_arm_pic[] =
+  {
+    THUMB16_INSN(0x4778),             /* bx   pc */
+    THUMB16_INSN(0x46c0),             /* nop  */
+    ARM_INSN(0xe59fc000),             /* ldr  ip, [pc, #0] */
+    ARM_INSN(0xe08cf00f),             /* add  pc, ip, pc */
+    DATA_WORD(0, R_ARM_REL32, -4),     /* dcd  R_ARM_REL32(X) */
+  };
+
+/* Thumb -> Thumb long branch stub, PIC. Used on architectures which
+   support only this mode, or on V4T where it is expensive to switch
+   to ARM.  */
+static const insn_sequence elf32_arm_stub_long_branch_thumb_only_pic[] =
   {
-    0xe59fc000,         /* ldr   r12, [pc] */
-    0xe08ff00c,         /* add   pc, pc, ip */
-    0x00000000,         /* dcd   R_ARM_REL32(X-4) */
+    THUMB16_INSN(0xb401),             /* push {r0} */
+    THUMB16_INSN(0x4802),             /* ldr  r0, [pc, #8] */
+    THUMB16_INSN(0x46fc),             /* mov  ip, pc */
+    THUMB16_INSN(0x4484),             /* add  ip, r0 */
+    THUMB16_INSN(0xbc01),             /* pop  {r0} */
+    THUMB16_INSN(0x4760),             /* bx   ip */
+    DATA_WORD(0, R_ARM_REL32, 4),     /* dcd  R_ARM_REL32(X) */
   };
 
 /* Section name for stubs is the associated section name plus this
@@ -2081,7 +2148,11 @@ enum elf32_arm_stub_type
   arm_stub_long_branch_thumb_only,
   arm_stub_long_branch_v4t_thumb_arm,
   arm_stub_short_branch_v4t_thumb_arm,
-  arm_stub_long_branch_any_any_pic,
+  arm_stub_long_branch_any_arm_pic,
+  arm_stub_long_branch_any_thumb_pic,
+  arm_stub_long_branch_v4t_arm_thumb_pic,
+  arm_stub_long_branch_v4t_thumb_arm_pic,
+  arm_stub_long_branch_thumb_only_pic,
 };
 
 struct elf32_arm_stub_hash_entry
@@ -2100,7 +2171,14 @@ struct elf32_arm_stub_hash_entry
   bfd_vma target_value;
   asection *target_section;
 
+  /* The stub type.  */
   enum elf32_arm_stub_type stub_type;
+  /* Its encoding size in bytes.  */
+  int stub_size;
+  /* Its template.  */
+  const insn_sequence *stub_template;
+  /* The size of the template (number of entries).  */
+  int stub_template_size;
 
   /* The symbol table entry, if any, that this was derived from.  */
   struct elf32_arm_link_hash_entry *h;
@@ -2469,6 +2547,9 @@ stub_hash_newfunc (struct bfd_hash_entry *entry,
       eh->target_value = 0;
       eh->target_section = NULL;
       eh->stub_type = arm_stub_none;
+      eh->stub_size = 0;
+      eh->stub_template = NULL;
+      eh->stub_template_size = 0;
       eh->h = NULL;
       eh->id_sec = NULL;
     }
@@ -2744,6 +2825,8 @@ arm_stub_is_thumb (enum elf32_arm_stub_type stub_type)
     case arm_stub_long_branch_thumb_only:
     case arm_stub_long_branch_v4t_thumb_arm:
     case arm_stub_short_branch_v4t_thumb_arm:
+    case arm_stub_long_branch_v4t_thumb_arm_pic:
+    case arm_stub_long_branch_thumb_only_pic:
       return TRUE;
     case arm_stub_none:
       BFD_FAIL ();
@@ -2819,9 +2902,9 @@ arm_type_of_stub (struct bfd_link_info *info,
 		    /* PIC stubs.  */
 		    ? ((globals->use_blx)
 		       /* V5T and above.  */
-		       ? arm_stub_long_branch_any_any_pic
-		       /* not yet supported on V4T.  */
-		       : arm_stub_none)
+		       ? arm_stub_long_branch_any_thumb_pic
+		       /* On V4T, use Thumb code only.  */
+		       : arm_stub_long_branch_thumb_only_pic)
 
 		    /* non-PIC stubs.  */
 		    : ((globals->use_blx)
@@ -2833,8 +2916,8 @@ arm_type_of_stub (struct bfd_link_info *info,
 	      else
 		{
 		  stub_type = (info->shared | globals->pic_veneer)
-		    /* PIC stub not yet supported on V4T.  */
-		    ? arm_stub_none
+		    /* PIC stub.  */
+		    ? arm_stub_long_branch_thumb_only_pic
 		    /* non-PIC stub.  */
 		    : arm_stub_long_branch_thumb_only;
 		}
@@ -2856,9 +2939,9 @@ arm_type_of_stub (struct bfd_link_info *info,
 		/* PIC stubs.  */
 		? ((globals->use_blx)
 		   /* V5T and above.  */
-		   ? arm_stub_long_branch_any_any_pic
-		   /* not yet supported on V4T.  */
-		   : arm_stub_none)
+		   ? arm_stub_long_branch_any_arm_pic
+		   /* V4T PIC stub.  */
+		   : arm_stub_long_branch_v4t_thumb_arm_pic)
 
 		/* non-PIC stubs.  */
 		: ((globals->use_blx)
@@ -2899,7 +2982,12 @@ arm_type_of_stub (struct bfd_link_info *info,
 	    {
 	      stub_type = (info->shared | globals->pic_veneer)
 		/* PIC stubs.  */
-		? arm_stub_long_branch_any_any_pic
+		? ((globals->use_blx)
+		   /* V5T and above.  */
+		   ? arm_stub_long_branch_any_thumb_pic
+		   /* V4T stub.  */
+		   : arm_stub_long_branch_v4t_arm_thumb_pic)
+
 		/* non-PIC stubs.  */
 		: ((globals->use_blx)
 		   /* V5T and above.  */
@@ -2916,7 +3004,7 @@ arm_type_of_stub (struct bfd_link_info *info,
 	    {
 	      stub_type = (info->shared | globals->pic_veneer)
 		/* PIC stubs.  */
-		? arm_stub_long_branch_any_any_pic
+		? arm_stub_long_branch_any_arm_pic
 		/* non-PIC stubs.  */
 		: arm_stub_long_branch_any_any;
 	    }
@@ -3108,9 +3196,11 @@ arm_build_one_stub (struct bfd_hash_entry *gen_entry,
   bfd_vma sym_value;
   int template_size;
   int size;
-  const bfd_vma *template;
+  const insn_sequence *template;
   int i;
   struct elf32_arm_link_hash_table * globals;
+  int stub_reloc_idx = -1;
+  int stub_reloc_offset = 0;
 
   /* Massage our args to the form they really have.  */
   stub_entry = (struct elf32_arm_stub_hash_entry *) gen_entry;
@@ -3136,101 +3226,61 @@ arm_build_one_stub (struct bfd_hash_entry *gen_entry,
 	       + stub_entry->target_section->output_offset
 	       + stub_entry->target_section->output_section->vma);
 
-  switch (stub_entry->stub_type)
-    {
-    case arm_stub_long_branch_any_any:
-      template = elf32_arm_stub_long_branch_any_any;
-      template_size = (sizeof (elf32_arm_stub_long_branch_any_any) / sizeof (bfd_vma)) * 4;
-      break;
-    case arm_stub_long_branch_v4t_arm_thumb:
-      template =  elf32_arm_stub_long_branch_v4t_arm_thumb;
-      template_size = (sizeof (elf32_arm_stub_long_branch_v4t_arm_thumb) / sizeof (bfd_vma)) * 4;
-      break;
-    case arm_stub_long_branch_thumb_only:
-      template =  elf32_arm_stub_long_branch_thumb_only;
-      template_size = (sizeof (elf32_arm_stub_long_branch_thumb_only) / sizeof (bfd_vma)) * 4;
-      break;
-    case arm_stub_long_branch_v4t_thumb_arm:
-      template =  elf32_arm_stub_long_branch_v4t_thumb_arm;
-      template_size = (sizeof (elf32_arm_stub_long_branch_v4t_thumb_arm) / sizeof (bfd_vma)) * 4;
-      break;
-    case arm_stub_short_branch_v4t_thumb_arm:
-      template =  elf32_arm_stub_short_branch_v4t_thumb_arm;
-      template_size = (sizeof(elf32_arm_stub_short_branch_v4t_thumb_arm) / sizeof (bfd_vma)) * 4;
-      break;
-    case arm_stub_long_branch_any_any_pic:
-      template = elf32_arm_stub_long_branch_any_any_pic;
-      template_size = (sizeof (elf32_arm_stub_long_branch_any_any_pic) / sizeof (bfd_vma)) * 4;
-      break;
-    default:
-      BFD_FAIL ();
-      return FALSE;
-    }
+  template = stub_entry->stub_template;
+  template_size = stub_entry->stub_template_size;
 
   size = 0;
-  for (i = 0; i < (template_size / 4); i++)
+  for (i = 0; i < template_size; i++)
     {
-      /* A 0 pattern is a placeholder, every other pattern is an
-	 instruction.  */
-      if (template[i] != 0)
-	put_arm_insn (globals, stub_bfd, template[i], loc + size);
-      else
-	bfd_put_32 (stub_bfd, template[i], loc + size);
+      switch (template[i].type)
+	{
+	case THUMB16_TYPE:
+	  put_thumb_insn (globals, stub_bfd, template[i].data, loc + size);
+	  size += 2;
+	  break;
+
+	case ARM_TYPE:
+	  put_arm_insn (globals, stub_bfd, template[i].data, loc + size);
+	  /* Handle cases where the target is encoded within the
+	     instruction.  */
+	  if (template[i].r_type == R_ARM_JUMP24)
+	    {
+	      stub_reloc_idx = i;
+	      stub_reloc_offset = size;
+	    }
+	  size += 4;
+	  break;
 
-      size += 4;
+	case DATA_TYPE:
+	  bfd_put_32 (stub_bfd, template[i].data, loc + size);
+	  stub_reloc_idx = i;
+	  stub_reloc_offset = size;
+	  size += 4;
+	  break;
+
+	default:
+	  BFD_FAIL ();
+	  return FALSE;
+	}
     }


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


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [SCM]  archer: Merge commit 'origin/archer-tromey-delayed-symfile' into archer
@ 2009-03-13 14:30 jkratoch
  0 siblings, 0 replies; 4+ messages in thread
From: jkratoch @ 2009-03-13 14:30 UTC (permalink / raw)
  To: archer-commits

The branch, archer has been updated
       via  c426803f90bd1e42536ac9b908ad2d3c7075adc0 (commit)
       via  766bff3b3e7ba4a544c27132abd7d06d9753e72d (commit)
       via  1018589cd4646267c3dfc2225d1227f25a85f644 (commit)
      from  de79fc3722595dbffd3e02853b495ac990f23f23 (commit)

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

- Log -----------------------------------------------------------------
commit c426803f90bd1e42536ac9b908ad2d3c7075adc0
Merge: de79fc3722595dbffd3e02853b495ac990f23f23 766bff3b3e7ba4a544c27132abd7d06d9753e72d
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date:   Fri Mar 13 15:29:56 2009 +0100

    Merge commit 'origin/archer-tromey-delayed-symfile' into archer

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

Summary of changes:
 gdb/machoread.c |    1 +
 gdb/somread.c   |    1 +
 2 files changed, 2 insertions(+), 0 deletions(-)

First 500 lines of diff:
diff --git a/gdb/machoread.c b/gdb/machoread.c
index d8d3bd2..248fae2 100644
--- a/gdb/machoread.c
+++ b/gdb/machoread.c
@@ -681,6 +681,7 @@ static struct sym_fns macho_sym_fns = {
   macho_new_init,               /* sym_new_init: init anything gbl to entire symtab */
   macho_symfile_init,           /* sym_init: read initial info, setup for sym_read() */
   macho_symfile_read,           /* sym_read: read a symbol file into symtab */
+  NULL,				/* sym_read_psymbols */
   macho_symfile_finish,         /* sym_finish: finished with file, cleanup */
   macho_symfile_offsets,        /* sym_offsets:  xlate external to internal form */
   NULL                          /* next: pointer to next struct sym_fns */
diff --git a/gdb/somread.c b/gdb/somread.c
index 36a2b28..4d5bda9 100644
--- a/gdb/somread.c
+++ b/gdb/somread.c
@@ -435,6 +435,7 @@ static struct sym_fns som_sym_fns =
   som_new_init,			/* sym_new_init: init anything gbl to entire symtab */
   som_symfile_init,		/* sym_init: read initial info, setup for sym_read() */
   som_symfile_read,		/* sym_read: read a symbol file into symtab */
+  NULL,				/* sym_read_psymbols */
   som_symfile_finish,		/* sym_finish: finished with file, cleanup */
   som_symfile_offsets,		/* sym_offsets:  Translate ext. to int. relocation */
   default_symfile_segments,	/* sym_segments: Get segment information from


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


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [SCM]  archer: Merge commit 'origin/archer-tromey-delayed-symfile' into archer
@ 2009-03-12 20:10 jkratoch
  0 siblings, 0 replies; 4+ messages in thread
From: jkratoch @ 2009-03-12 20:10 UTC (permalink / raw)
  To: archer-commits

The branch, archer has been updated
       via  96be6c5398456337a1b394ff7ab38d4c4278fa69 (commit)
       via  62f52184a5f52554d9fb51df9404b3436392f47a (commit)
       via  cda40de2d662168c62d5b5f23d9b3be0ce3d7b4f (commit)
       via  6243cda2f73580a305216774377683088f3bdab5 (commit)
       via  2f9a02c9a65ed3559d35471926d854891dcc54c6 (commit)
       via  3c3f88221be71e896e1fcb93639d18a5504bbedf (commit)
       via  2e725006c9b88b6fae515bee939258ec7926f17e (commit)
       via  33c502e17267911cb39423250a386bd948ba7168 (commit)
       via  942eb01d1d89c831ac01b3cd41bcf7d5baaf835a (commit)
       via  45cfe7b9f30e7830edad2fd2a00836567c6a1769 (commit)
       via  7c99b250a77ef559447c3dd25b31297f6302a210 (commit)
       via  5c671cd0dd3905d98f3717d832923400b6434bef (commit)
       via  b014b7b5a93934ba3593a55cf7c08745e0e634e9 (commit)
       via  3c501462869a4453fb6f642d01beaf472ac01022 (commit)
       via  3e1457d4769319af4e158d411ed2301a35a64a94 (commit)
       via  c59b337447ce0e9544c1d233aa3211f26ace8ca8 (commit)
       via  2d97f1fb81729ba9b5ba669a4168c2aef32bb534 (commit)
       via  194293f336f1a00a729a108c582396b7ba803a4e (commit)
       via  9253976ace93c65f9d951a38879690b91e0bd3e2 (commit)
       via  67288cc7c6ae33dc24f85a1cebc92364b5b4ed04 (commit)
       via  1391f0df776b9a6c82a200d082340c1b624a2989 (commit)
       via  1a27f6e04eaa3bec39396b88c85103f6bf6accc5 (commit)
       via  2a87d86340ab7a41cd94d6a48dbd54342a98f1bd (commit)
       via  852c0e0d0263f85b62090507be8daa135a87a53a (commit)
       via  fca72fa5ad030093f21211e1b4394ef40ab1d0cc (commit)
       via  bd553788ac40acb65c8a0849f38266955f905814 (commit)
       via  a0ef3038786538a8d390c907e8d11953bae47bc3 (commit)
       via  ddba7e72ef21e86088399b5b9364848f9d474921 (commit)
       via  24b599131ae218b0aca33621a06043e05bfea682 (commit)
       via  398035ce19b44ec266da36255133cf3d8ffd2295 (commit)
       via  b3328989e625642287d2d9a0dbafd7f357172c9b (commit)
       via  3d1209ec9ee4547aeb4bc46af829f2c7bbcd5d2e (commit)
       via  79e74d313b4bc7c56b58b1ccfd48cf07e754dc32 (commit)
       via  9339cc18dd5700a48ae62e73dddcab789ac6f2b6 (commit)
       via  92dfc8c682f091812f76ab979cde6e13d9f5f91d (commit)
       via  fc9cc7082d87f0011abd57fce1b2f52861fd67e8 (commit)
       via  094d2e715385262a524d8402e6fae589573422c0 (commit)
       via  451faa4f3d4bbf7e288b83aade43cb0ac9e3fe15 (commit)
       via  cc5083e2df32606306eb0e579df54abda1be71a5 (commit)
       via  fae8e4264ad99439cba03d572f38d73e495c88da (commit)
       via  734bf3302f8a087bb95c33facf93cbab88296e62 (commit)
       via  a88555d5710428614dbdade1bcddea2c7b81f071 (commit)
       via  0503f5df2489d32c57558a3fd733ab7a180b688d (commit)
       via  a3040cde74b99c348ce534d90b8f5330e88ec0ec (commit)
       via  4fe17d038a0891bdf400b17f5c01babb11e18c43 (commit)
       via  3d60ec7d687cd613e00aea316190936b9e47624d (commit)
       via  be87af029b506c0082a3e47f282e77052a368f8d (commit)
       via  bb895e00aedc40d6b47f1c76162c43cca0bf9655 (commit)
       via  c2972ffea8572552b612c7c2da82d3836b4a2c8a (commit)
       via  62c45004981d213b9fe085264e57f01d55fea73b (commit)
       via  0ed0ce6569cdb43df57173f703f5987da367625e (commit)
       via  be2e1c8d04cc278c352b05afcd2f92caad740b87 (commit)
       via  8444b262861157b6478ea024f77df2ed1ff02789 (commit)
       via  7a82cea5ae873f8b53eaf13f730a417a289a6aa9 (commit)
       via  01939d0bc5b5e377d2d2e1041336174f88d75657 (commit)
       via  ba3b27c6841ed40d7a38517348b34180797c2334 (commit)
       via  ef24aed64e5b773d8653ac8c497aa52acb3e4037 (commit)
       via  a602008d1bc4bd7ae94f48f258b42fe8b9fc6e35 (commit)
       via  7736f57ac722d86d8735aa89f71e86924ffb38cc (commit)
       via  f56e4cce499eef6d0f54e5febf00aa66f8a82f29 (commit)
       via  7028ef3bbdbc5e4a111d0b7cc780ee0c35a7292e (commit)
       via  129997da4c6c2aea81696300903da1ad47b7f48e (commit)
       via  f2f3abead03c81796832772dc2be966191b2f80c (commit)
       via  a93539b2e002585b2a1a2d32f0e2df2445fe6579 (commit)
       via  57eb800b475de56bba3f720dc7c64179f5899cec (commit)
       via  f1c4daa594919152e47c111c830393e10530443a (commit)
       via  3e5fb2e1453d9b8d09983a5a3d1d3ff203e8352a (commit)
       via  6e9407b3a655b3339a97bfeb9f79e6bf8e9a90ae (commit)
       via  a31bdfa66308b389d2a94de814afafbb4f0d9ff5 (commit)
       via  000b2df5b139714e6ec5d9fc79f1c59477b75126 (commit)
       via  8f21114a8f63389d6d516164a5a5fbd4de31e21b (commit)
       via  631a01f69c65c713332b5c5c152b583fd41cefd7 (commit)
       via  b2ec49e547711d2e267442bd571eb7253394d10f (commit)
       via  ef0744bb1590a8aad7f0b52c25f947de1e9b3e36 (commit)
       via  92f4807a51643d91c9f466fa62c1dc30c7a554ac (commit)
       via  6df02fc5bff4e11da68894137831fb27e8263d5c (commit)
       via  6ae22736c8ecbc8312af3631bd8be2ff156c3f64 (commit)
       via  4a7fe2eed71d84af81771722168df100149ebcc4 (commit)
       via  6722bb0b7991e0f20fd75883a2db654eea8438d3 (commit)
       via  a2e6917f7307db762725a77922ad8b0cf370e7ac (commit)
       via  c53b171a2083fdc3d959398d654aa2f4069b1c20 (commit)
       via  478ff543e243a47bb8934f738814ef69d9936ea5 (commit)
       via  fb597d271837a83d02703ca6fad12f9590845b3e (commit)
       via  9de9f540f0e38df29cca71eb7426e5791d1004dd (commit)
       via  a35213375f8b628f9e42fd5bc6cf67000c893248 (commit)
       via  62e5f942420bc61f1566a6becc79892ea08b27cd (commit)
       via  bb7fbd4a9265f0fceea0d0f0ca21933ccbee004e (commit)
       via  dad3bf19f9381ec7b0e8ba188626dddc81e8334e (commit)
      from  aafe933b497eee8cfab736a10bae1a90d4bceb18 (commit)

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

- Log -----------------------------------------------------------------
commit 96be6c5398456337a1b394ff7ab38d4c4278fa69
Merge: 62f52184a5f52554d9fb51df9404b3436392f47a 2e725006c9b88b6fae515bee939258ec7926f17e
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date:   Thu Mar 12 21:09:34 2009 +0100

    Merge commit 'origin/archer-tromey-delayed-symfile' into archer

commit 62f52184a5f52554d9fb51df9404b3436392f47a
Merge: cda40de2d662168c62d5b5f23d9b3be0ce3d7b4f 5c671cd0dd3905d98f3717d832923400b6434bef
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date:   Thu Mar 12 21:09:27 2009 +0100

    Merge commit 'origin/archer-jankratochvil-vla' into archer

commit cda40de2d662168c62d5b5f23d9b3be0ce3d7b4f
Merge: 6243cda2f73580a305216774377683088f3bdab5 45cfe7b9f30e7830edad2fd2a00836567c6a1769
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date:   Thu Mar 12 21:09:17 2009 +0100

    Merge commit 'origin/archer-jankratochvil-python' into archer

commit 6243cda2f73580a305216774377683088f3bdab5
Merge: 2f9a02c9a65ed3559d35471926d854891dcc54c6 3c3f88221be71e896e1fcb93639d18a5504bbedf
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date:   Thu Mar 12 21:09:11 2009 +0100

    Merge commit 'origin/archer-jankratochvil-misc' into archer

commit 2f9a02c9a65ed3559d35471926d854891dcc54c6
Merge: 3c501462869a4453fb6f642d01beaf472ac01022 33c502e17267911cb39423250a386bd948ba7168
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date:   Thu Mar 12 21:09:06 2009 +0100

    Merge commit 'origin/archer-jankratochvil-expr' into archer

commit 3c501462869a4453fb6f642d01beaf472ac01022
Merge: c59b337447ce0e9544c1d233aa3211f26ace8ca8 3e1457d4769319af4e158d411ed2301a35a64a94
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date:   Thu Mar 12 21:01:33 2009 +0100

    Merge commit 'origin/archer-tromey-charset' into archer

commit c59b337447ce0e9544c1d233aa3211f26ace8ca8
Merge: 2d97f1fb81729ba9b5ba669a4168c2aef32bb534 194293f336f1a00a729a108c582396b7ba803a4e
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date:   Thu Mar 12 20:54:00 2009 +0100

    Merge commit 'origin/archer-jankratochvil-type-refcount' into archer

commit 2d97f1fb81729ba9b5ba669a4168c2aef32bb534
Merge: 67288cc7c6ae33dc24f85a1cebc92364b5b4ed04 9253976ace93c65f9d951a38879690b91e0bd3e2
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date:   Thu Mar 12 20:53:55 2009 +0100

    Merge commit 'origin/archer-jankratochvil-misc' into archer

commit 67288cc7c6ae33dc24f85a1cebc92364b5b4ed04
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date:   Thu Mar 12 20:46:28 2009 +0100

    Revert "opcodes/"
    
    This reverts commit f167d06f1917ae5474507153f672747077b7c4a6.
    
    Dropping cherry-pick to do a full merge with HEADs.
    The original "stable branch" is now at: archer-jankratochvil-fedora-merge

commit 1391f0df776b9a6c82a200d082340c1b624a2989
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date:   Thu Mar 12 20:46:16 2009 +0100

    Revert "Drop a ChangeLog file change causing conflicts."
    
    This reverts commit bf6147356894cacabfbf511cfb7044a4845d2dfd.
    
    Dropping cherry-pick to do a full merge with HEADs.
    The original "stable branch" is now at: archer-jankratochvil-fedora-merge

commit 1a27f6e04eaa3bec39396b88c85103f6bf6accc5
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date:   Thu Mar 12 20:46:05 2009 +0100

    Revert "cherry-pick: Fix excessive: Quitting: You can't do that without a process to debug."
    
    This reverts commit 32e0ad877f650025c260445d7ba901123f1ad96a.
    
    Dropping cherry-pick to do a full merge with HEADs.
    The original "stable branch" is now at: archer-jankratochvil-fedora-merge

commit 2a87d86340ab7a41cd94d6a48dbd54342a98f1bd
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date:   Thu Mar 12 20:44:48 2009 +0100

    Revert "cherry-pick: Fix internal-error on permanent breakpoint on top of permanent breakpoint."
    
    This reverts commit f2bb5f6434609f26002e96708430d2871d4a8eec.
    
    Dropping cherry-pick to do a full merge with HEADs.

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

Summary of changes:
 bfd/ChangeLog                               |  105 ++
 bfd/Makefile.am                             |   30 +-
 bfd/Makefile.in                             |   31 +-
 bfd/archive.c                               |   44 +-
 bfd/bfd-in2.h                               |   18 +-
 bfd/bfd.c                                   |    5 +
 bfd/configure                               |  247 ++++-
 bfd/configure.in                            |   22 +
 bfd/dwarf2.c                                |   76 +-
 bfd/ecoff.c                                 |   11 +-
 bfd/elf32-arm.c                             |   85 +-
 bfd/elf32-i386.c                            |    7 +-
 bfd/elf32-ppc.c                             |  192 +++-
 bfd/elf32-spu.c                             |   13 +
 bfd/elf64-ppc.c                             |  280 ++++-
 bfd/elf64-x86-64.c                          |    5 +-
 bfd/libbfd.h                                |    2 +
 bfd/peXXigen.c                              |   16 +-
 bfd/po/es.po                                | 1943 +++++++++++++++------------
 bfd/reloc.c                                 |    4 +
 bfd/section.c                               |   13 +-
 bfd/som.c                                   |    6 +-
 bfd/version.h                               |    2 +-
 gdb/ChangeLog                               |  158 +++
 gdb/ada-lang.c                              |   48 -
 gdb/ada-lang.h                              |    4 -
 gdb/ada-tasks.c                             |   37 -
 gdb/aix-thread.c                            |   26 +-
 gdb/breakpoint.c                            |   17 +-
 gdb/c-exp.y                                 |  129 ++-
 gdb/cli/cli-cmds.c                          |    2 +-
 gdb/cp-name-parser.y                        |    2 +-
 gdb/dec-thread.c                            |   75 +-
 gdb/disasm.c                                |    1 -
 gdb/disasm.h                                |    1 -
 gdb/doc/ChangeLog                           |    7 +
 gdb/doc/gdb.texinfo                         |   61 +-
 gdb/dwarf2read.c                            |   62 +-
 gdb/eval.c                                  |   39 -
 gdb/expression.h                            |    2 -
 gdb/gdbserver/ChangeLog                     |    2 +-
 gdb/infcmd.c                                |   81 +-
 gdb/inferior.h                              |    2 +
 gdb/mi/mi-cmd-disas.c                       |    1 -
 gdb/objfiles.c                              |    4 +-
 gdb/printcmd.c                              |   94 ++-
 gdb/python/python-frame.c                   |   15 +-
 gdb/python/python.c                         |    2 +-
 gdb/remote.c                                |  100 +-
 gdb/solib-osf.c                             |    4 +-
 gdb/solib.c                                 |   62 +-
 gdb/solib.h                                 |    6 +-
 gdb/stack.c                                 |    2 +-
 gdb/testsuite/ChangeLog                     |    6 +
 gdb/testsuite/gdb.base/solib-display-lib.c  |   30 +
 gdb/testsuite/gdb.base/solib-display-main.c |   32 +
 gdb/testsuite/gdb.base/solib-display.exp    |  115 ++
 gdb/testsuite/gdb.cp/ovldbreak.exp          |    4 +-
 gdb/valops.c                                |   93 ++-
 gdb/varobj.c                                |    2 +
 gdb/version.in                              |    2 +-
 gdb/windows-nat.c                           |   33 +-
 gdb/xcoffread.c                             |   34 +-
 include/elf/ChangeLog                       |    5 +
 include/elf/ppc.h                           |    6 +-
 include/elf/ppc64.h                         |    4 +-
 include/opcode/ChangeLog                    |    4 +
 include/opcode/ppc.h                        |    4 +-
 opcodes/ChangeLog                           |   36 +
 opcodes/Makefile.am                         |  342 ++---
 opcodes/Makefile.in                         |  350 ++---
 opcodes/configure                           |  247 ++++-
 opcodes/configure.in                        |   22 +
 opcodes/po/es.po                            |  249 +++--
 opcodes/po/id.po                            | 1021 ++++++++++++--
 opcodes/ppc-dis.c                           |  291 +++--
 76 files changed, 4981 insertions(+), 2154 deletions(-)
 create mode 100644 gdb/testsuite/gdb.base/solib-display-lib.c
 create mode 100644 gdb/testsuite/gdb.base/solib-display-main.c
 create mode 100644 gdb/testsuite/gdb.base/solib-display.exp

First 500 lines of diff:
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index d431c0d..9841e5d 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,108 @@
+2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/9938
+	* elf32-i386.c (elf_i386_check_tls_transition): Use strncmp
+	to check ___tls_get_addr.
+
+	* elf64-x86-64.c (elf64_x86_64_check_tls_transition): Use
+	strncmp to check __tls_get_addr.
+
+2009-03-12  Andrew Stubbs  <ams@codesourcery.com>
+
+	* dwarf2.c (read_section): Always check the offset, even when the
+	section has been read before.
+
+2009-03-11  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf32-i386.c (elf_i386_check_tls_transition): Fix a typo in
+	comments.
+
+2009-03-11  Chris Demetriou  <cgd@google.com>
+
+	* bfd.c (BFD_DETERMINISTIC_OUTPUT): New flag.
+	* bfd-in2.h: Regenerate.
+	* archive.c (bfd_ar_hdr_from_filesystem): If BFD_DETERMINISTIC_OUTPUT
+	flag is set, use 0 for uid, gid, and timestamp, and use 0644 for file
+	mode.
+	(bsd_write_armap): Likewise.
+	(_bfd_archive_bsd_update_armap_timestamp): If BFD_DETERMINISTIC_OUTPUT
+	flag is set, do nothing.
+	(coff_write_armap): If BFD_DETERMINISTIC_OUTPUT flag is set, use 0
+	for timestamp.
+
+2009-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* elf32-spu.c (find_function_stack_adjust): Handle sf instruction
+	used to update stack pointer.
+
+2009-03-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+	PR binutils/9921
+	* som.c (som_bfd_derive_misc_symbol_info): Set symbol type ST_ABSOLUTE
+	for unknown symbols in absolute section.
+
+2009-03-06  Nick Clifton  <nickc@redhat.com>
+
+	* po/es.po: Updated Spanish translation.
+
+2009-03-05  Christophe Lyon  <christophe.lyon@st.com>
+
+	* elf32-arm.c (group_sections): Take next section size into
+	account before accepting to group it.
+
+2009-03-05  Christophe Lyon  <christophe.lyon@st.com>
+
+	* elf32-arm.c (arm_type_of_stub): Handle long branches targetting
+	PLT entries.
+	(elf32_arm_final_link_relocate): Likewise.
+
+2009-03-05  Moritz Kroll  <Moritz.Kroll@gmx.de>
+
+	PR 9923
+	* peXXigen.c (_bfd_XXi_final_link_postscript): Check h->root.type.
+
+2009-03-04  Alan Modra  <amodra@bigpond.net.au>
+
+	* reloc.c (BFD_RELOC_PPC_TLSGD, BFD_RELOC_PPC_TLSLD): New.
+	* section.c (struct bfd_section): Add has_tls_get_addr_call.
+	(BFD_FAKE_SECTION): Init new flag.
+	* ecoff.c (bfd_debug_section): Likewise.
+	* bfd-in2.h: Regenerate.
+	* libbfd.h: Regenerate.
+	* elf32-ppc.c (ppc_elf_howto_raw): Add R_PPC_TLSGD and R_PPC_TLSLD.
+	(ppc_elf_reloc_type_lookup): Handle new relocs.
+	(ppc_elf_check_relocs): Set has_tls_get_addr_call on finding such
+	without marker relocs.
+	(ppc_elf_tls_optimize): Allow out-of-order __tls_get_addr relocs
+	if section has no old-style calls.
+	(ppc_elf_relocate_section): Set tls_mask for non-tls relocs too.
+	Don't try to optimize new-style __tls_get_addr call when handling
+	arg setup relocs.  Instead do so for R_PPC_TLSGD and R_PPC_TLSLD
+	relocs.
+	* elf64-ppc.c (ppc64_elf_howto_raw): Add R_PPC64_TLSGD, R_PPC64_TLSLD.
+	(ppc64_elf_reloc_type_lookup): Handle new relocs.
+	(ppc64_elf_check_relocs): Set has_tls_get_addr_call on finding such
+	without marker relocs.
+	(ppc64_elf_tls_optimize): Allow out-of-order __tls_get_addr relocs
+	if section has no old-style calls.  Set toc_ref for new relocs as
+	appropriate.
+	(ppc64_elf_relocate_section): Set tls_mask for non-tls relocs too.
+	Don't try to optimize new-style __tls_get_addr call when handling
+	arg setup relocs.  Instead do so for R_PPC_TLSGD and R_PPC_TLSLD
+	relocs.
+
+2009-03-04  Alan Modra  <amodra@bigpond.net.au>
+
+	PR 6768
+	* configure.in: Test for ld --as-needed support.  Link shared
+	libbfd against libm.
+	* configure: Regenerate.
+
+2009-03-03  Alan Modra  <amodra@bigpond.net.au>
+
+	* Makefile.am: Run "make dep-am".
+	* Makefile.in: Regenerate.
+
 2009-03-02  Qinwei  <qinwei@sunnorth.com.cn>
 
 	* elf32-score7.c: New file.
diff --git a/bfd/Makefile.am b/bfd/Makefile.am
index 08f0c2a..1c150cd 100644
--- a/bfd/Makefile.am
+++ b/bfd/Makefile.am
@@ -1052,11 +1052,10 @@ archive.lo: archive.c $(INCDIR)/filenames.h $(INCDIR)/libiberty.h \
 archures.lo: archures.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h \
   $(INCDIR)/safe-ctype.h
 bfd.lo: bfd.c $(INCDIR)/filenames.h bfdver.h $(INCDIR)/libiberty.h \
-  $(INCDIR)/demangle.h $(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h \
-  $(INCDIR)/bfdlink.h $(INCDIR)/hashtab.h $(INCDIR)/coff/internal.h \
-  $(INCDIR)/coff/sym.h libcoff.h libecoff.h $(INCDIR)/coff/ecoff.h \
-  elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h \
-  $(INCDIR)/elf/internal.h
+  $(INCDIR)/demangle.h $(INCDIR)/safe-ctype.h $(INCDIR)/bfdlink.h \
+  $(INCDIR)/hashtab.h $(INCDIR)/coff/internal.h $(INCDIR)/coff/sym.h \
+  libcoff.h libecoff.h $(INCDIR)/coff/ecoff.h elf-bfd.h \
+  $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h $(INCDIR)/elf/internal.h
 bfdio.lo: bfdio.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h
 bfdwin.lo: bfdwin.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h
 cache.lo: cache.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h \
@@ -1460,15 +1459,15 @@ elf32-iq2000.lo: elf32-iq2000.c $(INCDIR)/filenames.h \
   $(INCDIR)/elf/external.h $(INCDIR)/elf/internal.h $(INCDIR)/bfdlink.h \
   $(INCDIR)/elf/iq2000.h $(INCDIR)/elf/reloc-macros.h \
   elf32-target.h
+elf32-lm32.lo: elf32-lm32.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h \
+  elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h \
+  $(INCDIR)/elf/internal.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/lm32.h \
+  $(INCDIR)/elf/reloc-macros.h elf32-target.h
 elf32-m32c.lo: elf32-m32c.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h \
   elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h \
   $(INCDIR)/elf/internal.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/m32c.h \
   $(INCDIR)/elf/reloc-macros.h $(INCDIR)/libiberty.h \
   elf32-target.h
-elf32-lm32.lo: elf32-lm32.c $(INCDIR)/filenames.h elf-bfd.h \
-  $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
-  $(INCDIR)/bfdlink.h $(INCDIR)/elf/lm32.h $(INCDIR)/elf/reloc-macros.h \
-  elf32-target.h
 elf32-m32r.lo: elf32-m32r.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h \
   elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h \
   $(INCDIR)/elf/internal.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/m32r.h \
@@ -1572,13 +1571,13 @@ elf32-s390.lo: elf32-s390.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \
 elf32-score.lo: elf32-score.c $(INCDIR)/filenames.h \
   $(INCDIR)/hashtab.h $(INCDIR)/libiberty.h elf-bfd.h \
   $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h $(INCDIR)/elf/internal.h \
-  $(INCDIR)/bfdlink.h elf32-score.h $(INCDIR)/elf/score.h $(INCDIR)/elf/reloc-macros.h \
-  elf32-target.h
+  $(INCDIR)/bfdlink.h $(INCDIR)/elf/score.h $(INCDIR)/elf/reloc-macros.h \
+  elf32-score.h elf32-target.h
 elf32-score7.lo: elf32-score7.c $(INCDIR)/filenames.h \
   $(INCDIR)/hashtab.h $(INCDIR)/libiberty.h elf-bfd.h \
   $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h $(INCDIR)/elf/internal.h \
-  $(INCDIR)/bfdlink.h elf32-score.h $(INCDIR)/elf/score.h $(INCDIR)/elf/reloc-macros.h \
-  elf32-target.h
+  $(INCDIR)/bfdlink.h $(INCDIR)/elf/score.h $(INCDIR)/elf/reloc-macros.h \
+  elf32-score.h
 elf32-sh.lo: elf32-sh.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \
   $(INCDIR)/hashtab.h elf-bfd.h $(INCDIR)/elf/common.h \
   $(INCDIR)/elf/external.h $(INCDIR)/elf/internal.h elf-vxworks.h \
@@ -1723,7 +1722,8 @@ m88kopenbsd.lo: m88kopenbsd.c netbsd.h $(INCDIR)/filenames.h \
   $(INCDIR)/aout/aout64.h $(INCDIR)/aout/stab_gnu.h $(INCDIR)/aout/stab.def \
   $(INCDIR)/aout/ar.h
 mach-o.lo: mach-o.c $(INCDIR)/filenames.h mach-o.h \
-  $(INCDIR)/hashtab.h $(INCDIR)/libiberty.h mach-o-target.c
+  $(INCDIR)/hashtab.h $(INCDIR)/libiberty.h $(INCDIR)/aout/stab_gnu.h \
+  $(INCDIR)/aout/stab.def mach-o-target.c
 mipsbsd.lo: mipsbsd.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h \
   libaout.h $(INCDIR)/bfdlink.h aout-target.h $(INCDIR)/aout/aout64.h \
   $(INCDIR)/aout/stab_gnu.h $(INCDIR)/aout/stab.def $(INCDIR)/aout/ar.h
@@ -1872,7 +1872,7 @@ vms-misc.lo: vms-misc.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \
   $(INCDIR)/hashtab.h vms.h
 vms-tir.lo: vms-tir.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \
   $(INCDIR)/hashtab.h vms.h
-vmsutil.lo: vmsutil.c vmsutil.h $(INCDIR)/ansidecl.h
+vmsutil.lo: vmsutil.c vmsutil.h
 xcofflink.lo: xcofflink.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \
   $(INCDIR)/hashtab.h $(INCDIR)/coff/internal.h $(INCDIR)/coff/xcoff.h \
   libcoff.h libxcoff.h
diff --git a/bfd/Makefile.in b/bfd/Makefile.in
index 1eb5887..32191a1 100644
--- a/bfd/Makefile.in
+++ b/bfd/Makefile.in
@@ -740,8 +740,8 @@ BFD32_BACKENDS_CFILES = \
 	elf32-sh64.c \
 	elf32-sh64-com.c \
 	elf32-s390.c \
-	elf32-score7.c \
 	elf32-score.c \
+	elf32-score7.c \
 	elf32-sh.c \
 	elf32-sh-symbian.c \
 	elfxx-sparc.c \
@@ -1648,11 +1648,10 @@ archive.lo: archive.c $(INCDIR)/filenames.h $(INCDIR)/libiberty.h \
 archures.lo: archures.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h \
   $(INCDIR)/safe-ctype.h
 bfd.lo: bfd.c $(INCDIR)/filenames.h bfdver.h $(INCDIR)/libiberty.h \
-  $(INCDIR)/demangle.h $(INCDIR)/libiberty.h $(INCDIR)/safe-ctype.h \
-  $(INCDIR)/bfdlink.h $(INCDIR)/hashtab.h $(INCDIR)/coff/internal.h \
-  $(INCDIR)/coff/sym.h libcoff.h libecoff.h $(INCDIR)/coff/ecoff.h \
-  elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h \
-  $(INCDIR)/elf/internal.h
+  $(INCDIR)/demangle.h $(INCDIR)/safe-ctype.h $(INCDIR)/bfdlink.h \
+  $(INCDIR)/hashtab.h $(INCDIR)/coff/internal.h $(INCDIR)/coff/sym.h \
+  libcoff.h libecoff.h $(INCDIR)/coff/ecoff.h elf-bfd.h \
+  $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h $(INCDIR)/elf/internal.h
 bfdio.lo: bfdio.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h
 bfdwin.lo: bfdwin.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h
 cache.lo: cache.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h \
@@ -2056,15 +2055,15 @@ elf32-iq2000.lo: elf32-iq2000.c $(INCDIR)/filenames.h \
   $(INCDIR)/elf/external.h $(INCDIR)/elf/internal.h $(INCDIR)/bfdlink.h \
   $(INCDIR)/elf/iq2000.h $(INCDIR)/elf/reloc-macros.h \
   elf32-target.h
+elf32-lm32.lo: elf32-lm32.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h \
+  elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h \
+  $(INCDIR)/elf/internal.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/lm32.h \
+  $(INCDIR)/elf/reloc-macros.h elf32-target.h
 elf32-m32c.lo: elf32-m32c.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h \
   elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h \
   $(INCDIR)/elf/internal.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/m32c.h \
   $(INCDIR)/elf/reloc-macros.h $(INCDIR)/libiberty.h \
   elf32-target.h
-elf32-lm32.lo: elf32-lm32.c $(INCDIR)/filenames.h elf-bfd.h \
-  $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
-  $(INCDIR)/bfdlink.h $(INCDIR)/elf/lm32.h $(INCDIR)/elf/reloc-macros.h \
-  elf32-target.h
 elf32-m32r.lo: elf32-m32r.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h \
   elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h \
   $(INCDIR)/elf/internal.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/m32r.h \
@@ -2169,13 +2168,12 @@ elf32-score.lo: elf32-score.c $(INCDIR)/filenames.h \
   $(INCDIR)/hashtab.h $(INCDIR)/libiberty.h elf-bfd.h \
   $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h $(INCDIR)/elf/internal.h \
   $(INCDIR)/bfdlink.h $(INCDIR)/elf/score.h $(INCDIR)/elf/reloc-macros.h \
-  $(INCDIR)/bfdlink.h elf32-score.h $(INCDIR)/elf/score.h $(INCDIR)/elf/reloc-macros.h \
-  elf32-target.h
+  elf32-score.h elf32-target.h
 elf32-score7.lo: elf32-score7.c $(INCDIR)/filenames.h \
   $(INCDIR)/hashtab.h $(INCDIR)/libiberty.h elf-bfd.h \
   $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h $(INCDIR)/elf/internal.h \
-  $(INCDIR)/bfdlink.h elf32-score.h $(INCDIR)/elf/score.h $(INCDIR)/elf/reloc-macros.h \
-  elf32-target.h
+  $(INCDIR)/bfdlink.h $(INCDIR)/elf/score.h $(INCDIR)/elf/reloc-macros.h \
+  elf32-score.h
 elf32-sh.lo: elf32-sh.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \
   $(INCDIR)/hashtab.h elf-bfd.h $(INCDIR)/elf/common.h \
   $(INCDIR)/elf/external.h $(INCDIR)/elf/internal.h elf-vxworks.h \
@@ -2320,7 +2318,8 @@ m88kopenbsd.lo: m88kopenbsd.c netbsd.h $(INCDIR)/filenames.h \
   $(INCDIR)/aout/aout64.h $(INCDIR)/aout/stab_gnu.h $(INCDIR)/aout/stab.def \
   $(INCDIR)/aout/ar.h
 mach-o.lo: mach-o.c $(INCDIR)/filenames.h mach-o.h \
-  $(INCDIR)/hashtab.h $(INCDIR)/libiberty.h mach-o-target.c
+  $(INCDIR)/hashtab.h $(INCDIR)/libiberty.h $(INCDIR)/aout/stab_gnu.h \
+  $(INCDIR)/aout/stab.def mach-o-target.c
 mipsbsd.lo: mipsbsd.c $(INCDIR)/filenames.h $(INCDIR)/hashtab.h \
   libaout.h $(INCDIR)/bfdlink.h aout-target.h $(INCDIR)/aout/aout64.h \
   $(INCDIR)/aout/stab_gnu.h $(INCDIR)/aout/stab.def $(INCDIR)/aout/ar.h
@@ -2469,7 +2468,7 @@ vms-misc.lo: vms-misc.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \
   $(INCDIR)/hashtab.h vms.h
 vms-tir.lo: vms-tir.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \
   $(INCDIR)/hashtab.h vms.h
-vmsutil.lo: vmsutil.c vmsutil.h $(INCDIR)/ansidecl.h
+vmsutil.lo: vmsutil.c vmsutil.h
 xcofflink.lo: xcofflink.c $(INCDIR)/filenames.h $(INCDIR)/bfdlink.h \
   $(INCDIR)/hashtab.h $(INCDIR)/coff/internal.h $(INCDIR)/coff/xcoff.h \
   libcoff.h libxcoff.h
diff --git a/bfd/archive.c b/bfd/archive.c
index 437a085..5e0fd6b 100644
--- a/bfd/archive.c
+++ b/bfd/archive.c
@@ -1652,6 +1652,16 @@ bfd_ar_hdr_from_filesystem (bfd *abfd, const char *filename, bfd *member)
       return NULL;
     }
 
+  /* If the caller requested that the BFD generate deterministic output,
+     fake values for modification time, UID, GID, and file mode.  */
+  if ((abfd->flags & BFD_DETERMINISTIC_OUTPUT) != 0)
+    {
+      status.st_mtime = 0;
+      status.st_uid = 0;
+      status.st_gid = 0;
+      status.st_mode = 0644;
+    }
+
   amt = sizeof (struct ar_hdr) + sizeof (struct areltdata);
   ared = bfd_zalloc (abfd, amt);
   if (ared == NULL)
@@ -2220,20 +2230,39 @@ bsd_write_armap (bfd *arch,
   unsigned int count;
   struct ar_hdr hdr;
   struct stat statbuf;
+  long uid, gid;
 
   firstreal = mapsize + elength + sizeof (struct ar_hdr) + SARMAG;
 
   stat (arch->filename, &statbuf);
+  if ((arch->flags & BFD_DETERMINISTIC_OUTPUT) == 0)
+    {
+      /* Remember the timestamp, to keep it holy.  But fudge it a little.  */
+      bfd_ardata (arch)->armap_timestamp = (statbuf.st_mtime
+                                            + ARMAP_TIME_OFFSET);
+      uid = getuid();
+      gid = getgid();
+    }
+  else
+    {
+      /* If deterministic, we use 0 as the timestamp in the map.
+         Some linkers may require that the archive filesystem modification
+         time is less than (or near to) the archive map timestamp.  Those
+         linkers should not be used with deterministic mode.  (GNU ld and
+         Gold do not have this restriction.)  */
+      bfd_ardata (arch)->armap_timestamp = 0;
+      uid = 0;
+      gid = 0;
+    }
+
   memset (&hdr, ' ', sizeof (struct ar_hdr));
   memcpy (hdr.ar_name, RANLIBMAG, strlen (RANLIBMAG));
-  /* Remember the timestamp, to keep it holy.  But fudge it a little.  */
-  bfd_ardata (arch)->armap_timestamp = statbuf.st_mtime + ARMAP_TIME_OFFSET;
   bfd_ardata (arch)->armap_datepos = (SARMAG
 				      + offsetof (struct ar_hdr, ar_date[0]));
   _bfd_ar_spacepad (hdr.ar_date, sizeof (hdr.ar_date), "%ld",
                     bfd_ardata (arch)->armap_timestamp);
-  _bfd_ar_spacepad (hdr.ar_uid, sizeof (hdr.ar_uid), "%ld", getuid ());
-  _bfd_ar_spacepad (hdr.ar_gid, sizeof (hdr.ar_gid), "%ld", getgid ());
+  _bfd_ar_spacepad (hdr.ar_uid, sizeof (hdr.ar_uid), "%ld", uid);
+  _bfd_ar_spacepad (hdr.ar_gid, sizeof (hdr.ar_gid), "%ld", gid);
   _bfd_ar_spacepad (hdr.ar_size, sizeof (hdr.ar_size), "%-10ld", mapsize);
   memcpy (hdr.ar_fmag, ARFMAG, 2);
   if (bfd_bwrite (&hdr, sizeof (struct ar_hdr), arch)
@@ -2301,6 +2330,10 @@ _bfd_archive_bsd_update_armap_timestamp (bfd *arch)
   struct stat archstat;
   struct ar_hdr hdr;
 
+  /* If creating deterministic archives, just leave the timestamp as-is.  */
+  if ((arch->flags & BFD_DETERMINISTIC_OUTPUT) != 0)
+    return TRUE;
+
   /* Flush writes, get last-write timestamp from file, and compare it
      to the timestamp IN the file.  */
   bfd_flush (arch);
@@ -2385,7 +2418,8 @@ coff_write_armap (bfd *arch,
   _bfd_ar_spacepad (hdr.ar_size, sizeof (hdr.ar_size), "%-10ld",
                     mapsize);
   _bfd_ar_spacepad (hdr.ar_date, sizeof (hdr.ar_date), "%ld",
-                    time (NULL));
+                    ((arch->flags & BFD_DETERMINISTIC_OUTPUT) == 0
+                     ? time (NULL) : 0));
   /* This, at least, is what Intel coff sets the values to.  */
   _bfd_ar_spacepad (hdr.ar_uid, sizeof (hdr.ar_uid), "%ld", 0);
   _bfd_ar_spacepad (hdr.ar_gid, sizeof (hdr.ar_gid), "%ld", 0);
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index be35ac4..7e3defd 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -1343,6 +1343,9 @@ typedef struct bfd_section
   /* Nonzero if this section has TLS related relocations.  */
   unsigned int has_tls_reloc:1;
 
+  /* Nonzero if this section has a call to __tls_get_addr.  */
+  unsigned int has_tls_get_addr_call:1;
+
   /* Nonzero if this section has a gp reloc.  */
   unsigned int has_gp_reloc:1;
 
@@ -1603,11 +1606,11 @@ extern asection bfd_ind_section;
   /* segment_mark, sec_info_type, use_rela_p, has_tls_reloc,       */  \
      0,            0,             0,          0,                       \
                                                                        \
-  /* has_gp_reloc, need_finalize_relax, reloc_done,                */  \
-     0,            0,                   0,                             \
+  /* has_tls_get_addr_call, has_gp_reloc, need_finalize_relax,     */  \
+     0,                     0,            0,                           \
                                                                        \
-  /* vma, lma, size, rawsize                                       */  \
-     0,   0,   0,    0,                                                \
+  /* reloc_done, vma, lma, size, rawsize                           */  \
+     0,          0,   0,   0,    0,                                    \
                                                                        \
   /* output_offset, output_section,              alignment_power,  */  \
      0,             (struct bfd_section *) &SEC, 0,                    \
@@ -2928,6 +2931,8 @@ relaxation.  */
 
 /* PowerPC and PowerPC64 thread-local storage relocations.  */
   BFD_RELOC_PPC_TLS,
+  BFD_RELOC_PPC_TLSGD,
+  BFD_RELOC_PPC_TLSLD,
   BFD_RELOC_PPC_DTPMOD,
   BFD_RELOC_PPC_TPREL16,
   BFD_RELOC_PPC_TPREL16_LO,
@@ -4764,6 +4769,11 @@ struct bfd
      to any input file.  */
 #define BFD_LINKER_CREATED 0x2000
 
+  /* This may be set before writing out a BFD to request that it
+     be written using values for UIDs, GIDs, timestamps, etc. that
+     will be consistent from run to run.  */
+#define BFD_DETERMINISTIC_OUTPUT 0x4000
+
   /* Currently my_archive is tested before adding origin to
      anything. I believe that this can become always an add of
      origin, with origin set to 0 for non archive files.  */
diff --git a/bfd/bfd.c b/bfd/bfd.c
index 847da52..9979ac6 100644
--- a/bfd/bfd.c
+++ b/bfd/bfd.c
@@ -145,6 +145,11 @@ CODE_FRAGMENT
 .     to any input file.  *}
 .#define BFD_LINKER_CREATED 0x2000
 .
+.  {* This may be set before writing out a BFD to request that it
+.     be written using values for UIDs, GIDs, timestamps, etc. that
+.     will be consistent from run to run.  *}
+.#define BFD_DETERMINISTIC_OUTPUT 0x4000
+.
 .  {* Currently my_archive is tested before adding origin to
 .     anything. I believe that this can become always an add of
 .     origin, with origin set to 0 for non archive files.  *}
diff --git a/bfd/configure b/bfd/configure
index 6c21291..adcd52d 100755
--- a/bfd/configure
+++ b/bfd/configure
@@ -458,7 +458,7 @@ ac_includes_default="\
 # include <unistd.h>
 #endif"
 
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE AR ac_ct_AR RANLIB ac_ct_RANLIB CPP EGREP LIBTOOL SED FGREP GREP LD DUMPBIN ac_ct_DUMPBIN NM LN_S OBJDUMP ac_ct_OBJDUMP lt_ECHO DSYMUTIL ac_ct_DSYMUTIL NMEDIT ac_ct_NMEDIT LIPO ac_ct_LIPO OTOOL ac_ct_OTOOL OTOOL64 ac_ct_OTOOL64 DEBUGDIR PKGVERSION REPORT_BUGS_TO REPORT_BUGS_TEXI WARN_CFLAGS NO_WERROR MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT GENINSRC_NEVER_TRUE GENINSRC_NEVER_FALSE INSTALL_LIBBFD_TRUE INSTALL_LIBBFD_FALSE host_noncanonical target_noncanonical bfdlibdir bfdincludedir USE_NLS LIBINTL LIBINTL_DEP INCINTL XGETTEXT GMSGFMT POSUB CATALOGS DATADIRNAME INSTOBJEXT GENCAT CATOBJEXT MKINSTALLDIRS MSGFMT MSGMERGE HDEFINES BFD_HOST_64BIT_LONG BFD_HOST_64BIT_LONG_LONG BFD_HOST_64_BIT_DEFINED BFD_HOST_64_BIT BFD_HOST_U_64_BIT BFD_HOSTPTR_T CC_FOR_BUILD EXEEXT_FOR_BUILD COREFILE COREFLAG SHARED_LDFLAGS SHARED_LIBADD TDEFINES wordsize bfd64_libs all_backends bfd_backends bfd_machines bfd_default_target_size bfd_file_ptr bfd_ufile_ptr tdefaults datarootdir docdir htmldir pdfdir LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE AR ac_ct_AR RANLIB ac_ct_RANLIB CPP EGREP LIBTOOL SED FGREP GREP LD DUMPBIN ac_ct_DUMPBIN NM LN_S OBJDUMP ac_ct_OBJDUMP lt_ECHO DSYMUTIL ac_ct_DSYMUTIL NMEDIT ac_ct_NMEDIT LIPO ac_ct_LIPO OTOOL ac_ct_OTOOL OTOOL64 ac_ct_OTOOL64 DEBUGDIR PKGVERSION REPORT_BUGS_TO REPORT_BUGS_TEXI WARN_CFLAGS NO_WERROR MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT GENINSRC_NEVER_TRUE GENINSRC_NEVER_FALSE INSTALL_LIBBFD_TRUE INSTALL_LIBBFD_FALSE host_noncanonical target_noncanonical bfdlibdir bfdincludedir USE_NLS LIBINTL LIBINTL_DEP INCINTL XGETTEXT GMSGFMT POSUB CATALOGS DATADIRNAME INSTOBJEXT GENCAT CATOBJEXT MKINSTALLDIRS MSGFMT MSGMERGE HDEFINES BFD_HOST_64BIT_LONG BFD_HOST_64BIT_LONG_LONG BFD_HOST_64_BIT_DEFINED BFD_HOST_64_BIT BFD_HOST_U_64_BIT BFD_HOSTPTR_T CC_FOR_BUILD EXEEXT_FOR_BUILD COREFILE COREFLAG LIBM SHARED_LDFLAGS SHARED_LIBADD TDEFINES wordsize bfd64_libs all_backends bfd_backends bfd_machines bfd_default_target_size bfd_file_ptr bfd_ufile_ptr tdefaults datarootdir docdir htmldir pdfdir LIBOBJS LTLIBOBJS'
 ac_subst_files=''
 ac_pwd=`pwd`
 
@@ -20555,6 +20555,238 @@ _ACEOF
 
 fi
 
+# Check if linker supports --as-needed and --no-as-needed options
+echo "$as_me:$LINENO: checking linker --as-needed support" >&5
+echo $ECHO_N "checking linker --as-needed support... $ECHO_C" >&6
+if test "${bfd_cv_ld_as_needed+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  bfd_cv_ld_as_needed=no
+	if $LD --help 2>/dev/null | grep as-needed > /dev/null; then
+		bfd_cv_ld_as_needed=yes
+	fi
+
+fi
+echo "$as_me:$LINENO: result: $bfd_cv_ld_as_needed" >&5
+echo "${ECHO_T}$bfd_cv_ld_as_needed" >&6
+
+LIBM=
+case $host in
+*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*)
+  # These system don't have libm, or don't need it
+  ;;
+*-ncr-sysv4.3*)
+  echo "$as_me:$LINENO: checking for _mwvalidcheckl in -lmw" >&5
+echo $ECHO_N "checking for _mwvalidcheckl in -lmw... $ECHO_C" >&6
+if test "${ac_cv_lib_mw__mwvalidcheckl+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lmw  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char _mwvalidcheckl ();
+int
+main ()
+{
+_mwvalidcheckl ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?


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


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [SCM]  archer: Merge commit 'origin/archer-tromey-delayed-symfile' into archer
@ 2009-03-07 17:50 jkratoch
  0 siblings, 0 replies; 4+ messages in thread
From: jkratoch @ 2009-03-07 17:50 UTC (permalink / raw)
  To: archer-commits

The branch, archer has been updated
       via  87fb2a332e40d259a097c835e6918254c7a7a088 (commit)
       via  7e9393ea476b4d6d8e27481d2b98c41aa0bb4af4 (commit)
      from  46c9c97c70d8a5670691a7a7f62e76d48213bf4e (commit)

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

- Log -----------------------------------------------------------------
commit 87fb2a332e40d259a097c835e6918254c7a7a088
Merge: 46c9c97c70d8a5670691a7a7f62e76d48213bf4e 7e9393ea476b4d6d8e27481d2b98c41aa0bb4af4
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date:   Sat Mar 7 18:49:45 2009 +0100

    Merge commit 'origin/archer-tromey-delayed-symfile' into archer

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

Summary of changes:
 gdb/symfile.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

First 500 lines of diff:
diff --git a/gdb/symfile.c b/gdb/symfile.c
index 8ca5457..b047e94 100644
--- a/gdb/symfile.c
+++ b/gdb/symfile.c
@@ -1066,7 +1066,8 @@ symbol_file_add_with_addrs_or_offsets (bfd *abfd, int from_tty,
 
   /* has_any_debug_symbols is not fully compatible with the former calls which
      would just be needlessly expensive here.  */
-  if (print_symbol_loading && !has_any_debug_symbols (objfile) && mainline)
+  if ((from_tty || info_verbose) && print_symbol_loading
+      && !has_any_debug_symbols (objfile) && mainline)
     {
       wrap_here ("");
       printf_unfiltered (_("(no debugging symbols found)"));


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


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2009-03-13 14:30 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-02-26 20:20 [SCM] archer: Merge commit 'origin/archer-tromey-delayed-symfile' into archer jkratoch
2009-03-07 17:50 jkratoch
2009-03-12 20:10 jkratoch
2009-03-13 14:30 jkratoch

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).