public inbox for archer-commits@sourceware.org
help / color / mirror / Atom feed
* [SCM]  archer-jankratochvil-fedora13: Merge remote branch 'origin/archer-jankratochvil-ifunc' into archer-jankratochvil-fedora13
@ 2010-02-03  5:17 jkratoch
  0 siblings, 0 replies; 3+ messages in thread
From: jkratoch @ 2010-02-03  5:17 UTC (permalink / raw)
  To: archer-commits

The branch, archer-jankratochvil-fedora13 has been updated
       via  285cf618d9b90b7f8f201f094bcfead3c9ba8925 (commit)
       via  493b26dcac7be1ebf46279b965b5850ed00dfa38 (commit)
       via  f565ce689a7060dd7bc86063fcb690ea066e3a44 (commit)
       via  0ffa51a99e8e8940d89a671398d84bba7d90a79a (commit)
       via  4e4f34b8a43bbaab583adc3f0f16ad186f886f5c (commit)
       via  949daf8a57d26d5cf88617e7bb1ce84eabe27524 (commit)
       via  a3e8d95800b2d82424c684c725cd07ecdecf0a47 (commit)
       via  015ad65f2349efce9b1d42abec3156d362367689 (commit)
       via  5b6eb301d3ce03b9f38b9b622fdf298c845d6897 (commit)
       via  567c88d9904c315d11ce33f2ef7c06d9cee3c900 (commit)
       via  d3f54c3062fffb30920bd4646a959e58d6a641d1 (commit)
       via  9e99e7178634f6f71c8d7330818fa4122fec8e4a (commit)
       via  836d44590c7f39c123c86c5c3b26235b68f6269c (commit)
       via  4ec1615209193f242d7656f16087a24155ea1989 (commit)
       via  530f480a0f973096a601505664ba3ee53bb26351 (commit)
       via  f8821e77873ce139d3d5387230f7effbb45ecaf5 (commit)
       via  8a66451abb01b7fa7aa0fb5947d1003df6e7f948 (commit)
       via  06d0527a3a31b81ccbfe5d2eb899f7e30ed93f2d (commit)
       via  039dd96564bdd16a903c390c9e25ff23a0986ad6 (commit)
       via  37b989f713c64fa3429d1ce470fdb25389c7eb0b (commit)
       via  e29c905cd8fdc87b7d8660c07601b810052e9444 (commit)
       via  b641539397a6cb5b4c67dbedafab62b1ac21391e (commit)
       via  89bdb2450e85875b16ad73f00b5632f27e3054a1 (commit)
       via  eac509950388e2e6a4d078202a0dd58d59fcddbd (commit)
       via  679554b8c8565b7d296940c5fdab35d98f28be3e (commit)
       via  875d1739ef2c7185f5e5e52eac3022171031132b (commit)
       via  0a60705522e536b44cb28a22d1aec7a1c7216011 (commit)
       via  662c6c45df41661abddf1b78ac2c4d4817b694a1 (commit)
       via  e9e9b7b1c149af6ed82bbb1c01f013c6b6ffd87e (commit)
       via  c6d8c9383174688d8d19a897e6ff5fe81e211de2 (commit)
       via  03729380c318738d19256b219bcc03d333dc54bf (commit)
       via  a5266a8a1fb2333418dd0914d3adeee72383b656 (commit)
       via  7a43b42ad592059e9bd595adf38fb65709aa3959 (commit)
       via  7f3f596fcee5e48061e248513e18096ca653620b (commit)
       via  f8893c711c4ee381385d983175cacb786f64774b (commit)
       via  feced2c94d506d91710d06e86ecdd5ac4b4d2c56 (commit)
       via  fdfccbaf9fffb6300698bcd8cbe1a41b96398527 (commit)
       via  e1e1f977b48241291ceaa7431bd448e2eacb5467 (commit)
       via  974eeebe13b24cf3d78e248857d914a393bf1597 (commit)
       via  ca233f4f50d32cf78cb2b19c31dc373d05e2743e (commit)
       via  2e4e6c860563f4d26538db70b02712753456a49a (commit)
       via  5f9a1f9f73c5552ceca68d5e2cefb6454d4d4a22 (commit)
       via  9c13abd586d6251a03d10c2d3809f3dd75a79a96 (commit)
       via  a86369688577ace604d9c15f2e45053cb0f1d046 (commit)
       via  fbae06a026848d102269b1d7627ed1ed1476ecd9 (commit)
       via  481ae44b178f289a3dce573858c076cba130a186 (commit)
       via  00d206f06c1bfe3c4e4ad727e7e7c0d23fec9304 (commit)
       via  ea72145d5db8c66253c9b21b785a5311f69ae99e (commit)
       via  055ea5aad2e3e6e74eb70760a27c5b12b105097d (commit)
       via  e85c2313d4ebb17b06409da168bbb836e229f877 (commit)
       via  c0869096279f9efb4047b5deceee1c6ded43300d (commit)
       via  eaf43e71840fb73fba7c0af93a675b945cf33272 (commit)
       via  06e45bb813f0299045e706936d448563e18de2f2 (commit)
       via  09ffeaf7f4252c5177063a04b70886b604431142 (commit)
       via  285e284cdcd5bd63bf316ddefaf642833d5a0f6a (commit)
       via  a54573f7582d0c73bc98ac06969bbcf3310ac16a (commit)
       via  a1f83b9843c1744564ffb0991f0a51ad372e3346 (commit)
       via  0fcc0541ae31b12263bba2ba8d52c8b461efbfe2 (commit)
       via  753be84d32a8922b66c4f9705811c57d5e64a724 (commit)
       via  cddb5b9441387b546785edb7f3723fd69a34db5a (commit)
       via  aeae4a8edcc90a5560ff3d9832ea79b65b119d9f (commit)
       via  9086f91b53f60094862210b6802e233ba8111ebc (commit)
       via  7ca68a06cb3b5ccf35b636933486ff6d647895fb (commit)
      from  59c35a31f0981a0f0b884b32c91ae6325b2126cd (commit)

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

- Log -----------------------------------------------------------------
commit 285cf618d9b90b7f8f201f094bcfead3c9ba8925
Merge: 493b26dcac7be1ebf46279b965b5850ed00dfa38 530f480a0f973096a601505664ba3ee53bb26351
Author: Jan Kratochvil <jkratoch@host1.dyn.jankratochvil.net>
Date:   Wed Feb 3 06:16:01 2010 +0100

    Merge remote branch 'origin/archer-jankratochvil-ifunc' into archer-jankratochvil-fedora13

commit 493b26dcac7be1ebf46279b965b5850ed00dfa38
Merge: f565ce689a7060dd7bc86063fcb690ea066e3a44 567c88d9904c315d11ce33f2ef7c06d9cee3c900
Author: Jan Kratochvil <jkratoch@host1.dyn.jankratochvil.net>
Date:   Wed Feb 3 06:16:00 2010 +0100

    Merge remote branch 'origin/archer-jankratochvil-watchpoint' into archer-jankratochvil-fedora13

commit f565ce689a7060dd7bc86063fcb690ea066e3a44
Merge: 0ffa51a99e8e8940d89a671398d84bba7d90a79a 4ec1615209193f242d7656f16087a24155ea1989
Author: Jan Kratochvil <jkratoch@host1.dyn.jankratochvil.net>
Date:   Wed Feb 3 06:16:00 2010 +0100

    Merge remote branch 'origin/archer-jankratochvil-fortran-module' into archer-jankratochvil-fedora13

commit 0ffa51a99e8e8940d89a671398d84bba7d90a79a
Merge: 4e4f34b8a43bbaab583adc3f0f16ad186f886f5c d3f54c3062fffb30920bd4646a959e58d6a641d1
Author: Jan Kratochvil <jkratoch@host1.dyn.jankratochvil.net>
Date:   Wed Feb 3 06:15:59 2010 +0100

    Merge remote branch 'origin/archer-pmuldoon-next-over-throw' into archer-jankratochvil-fedora13

commit 4e4f34b8a43bbaab583adc3f0f16ad186f886f5c
Merge: 949daf8a57d26d5cf88617e7bb1ce84eabe27524 9e99e7178634f6f71c8d7330818fa4122fec8e4a
Author: Jan Kratochvil <jkratoch@host1.dyn.jankratochvil.net>
Date:   Wed Feb 3 06:15:58 2010 +0100

    Merge remote branch 'origin/archer-tromey-delayed-symfile' into archer-jankratochvil-fedora13

commit 949daf8a57d26d5cf88617e7bb1ce84eabe27524
Merge: a3e8d95800b2d82424c684c725cd07ecdecf0a47 836d44590c7f39c123c86c5c3b26235b68f6269c
Author: Jan Kratochvil <jkratoch@host1.dyn.jankratochvil.net>
Date:   Wed Feb 3 06:15:16 2010 +0100

    Merge remote branch 'origin/archer-tromey-python' into archer-jankratochvil-fedora13
    
    Conflicts:
    	gdb/dwarf2read.c

commit a3e8d95800b2d82424c684c725cd07ecdecf0a47
Merge: 015ad65f2349efce9b1d42abec3156d362367689 5b6eb301d3ce03b9f38b9b622fdf298c845d6897
Author: Jan Kratochvil <jkratoch@host1.dyn.jankratochvil.net>
Date:   Wed Feb 3 06:14:43 2010 +0100

    Merge remote branch 'origin/archer-jankratochvil-vla' into archer-jankratochvil-fedora13

commit 015ad65f2349efce9b1d42abec3156d362367689
Merge: 59c35a31f0981a0f0b884b32c91ae6325b2126cd f8821e77873ce139d3d5387230f7effbb45ecaf5
Author: Jan Kratochvil <jkratoch@host1.dyn.jankratochvil.net>
Date:   Wed Feb 3 06:14:20 2010 +0100

    Merge remote branch 'origin/archer-keiths-expr-cumulative' into archer-jankratochvil-fedora13
    
    Conflicts:
    	gdb/gdbtypes.h

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

Summary of changes:
 ChangeLog                                          |    7 +
 bfd/ChangeLog                                      |   25 ++
 bfd/elf-bfd.h                                      |    2 +
 bfd/elf.c                                          |   33 ++-
 bfd/elf32-hppa.c                                   |   12 +-
 bfd/som.c                                          |    1 +
 bfd/version.h                                      |    2 +-
 configure                                          |   70 +++-
 configure.ac                                       |   37 ++-
 gdb/ChangeLog                                      |  189 +++++++++
 gdb/Makefile.in                                    |    2 +-
 gdb/amd64-tdep.c                                   |  136 +++++--
 gdb/amd64-tdep.h                                   |    3 +
 gdb/amd64-windows-tdep.c                           |  112 ++++++
 gdb/arch-utils.c                                   |    7 +
 gdb/arch-utils.h                                   |    3 +
 gdb/arm-linux-tdep.c                               |   11 +
 gdb/arm-tdep.c                                     |  420 ++++++++++++++++++--
 gdb/arm-tdep.h                                     |    9 +-
 gdb/c-lang.h                                       |    6 +
 gdb/c-typeprint.c                                  |   42 +--
 gdb/c-valprint.c                                   |    5 +-
 gdb/config/djgpp/fnchange.lst                      |    2 +
 gdb/cp-valprint.c                                  |   46 ++-
 gdb/doc/ChangeLog                                  |    7 +
 gdb/doc/gdb.texinfo                                |   84 +++--
 gdb/dwarf2read.c                                   |    5 +-
 gdb/frame.c                                        |    4 +-
 gdb/gdbarch.c                                      |   24 ++
 gdb/gdbarch.h                                      |    8 +
 gdb/gdbarch.sh                                     |    8 +-
 gdb/gdbserver/ChangeLog                            |   19 +
 gdb/gdbserver/inferiors.c                          |   25 +-
 gdb/gdbserver/linux-arm-low.c                      |    9 +-
 gdb/gdbserver/linux-low.c                          |   51 ++-
 gdb/gdbtypes.c                                     |    7 -
 gdb/gdbtypes.h                                     |   26 +-
 gdb/gnu-v2-abi.c                                   |    3 +-
 gdb/i386-tdep.c                                    |   14 +-
 gdb/i386-tdep.h                                    |   43 ++
 gdb/infcall.c                                      |    3 +-
 gdb/infrun.c                                       |   50 ++-
 gdb/language.h                                     |   29 ++-
 gdb/m2-typeprint.c                                 |    4 +-
 gdb/ppc-linux-tdep.c                               |    3 +-
 gdb/python/py-prettyprint.c                        |    3 +-
 gdb/regcache.c                                     |   15 +-
 gdb/regcache.h                                     |    3 +-
 gdb/remote.c                                       |    4 +-
 gdb/solib-svr4.c                                   |   16 +-
 gdb/testsuite/ChangeLog                            |   83 ++++
 gdb/testsuite/gdb.ada/call_pn.exp                  |   53 +++
 gdb/testsuite/gdb.ada/call_pn/foo.adb              |   23 +
 gdb/testsuite/gdb.ada/call_pn/pck.adb              |   25 ++
 gdb/testsuite/gdb.ada/call_pn/pck.ads              |   23 +
 gdb/testsuite/gdb.ada/rec_return.exp               |   46 +++
 gdb/testsuite/gdb.ada/rec_return/foo.adb           |   24 ++
 gdb/testsuite/gdb.ada/rec_return/pck.adb           |   27 ++
 gdb/testsuite/gdb.ada/rec_return/pck.ads           |   28 ++
 gdb/testsuite/gdb.arch/thumb2-it.S                 |  182 +++++++++
 gdb/testsuite/gdb.arch/thumb2-it.exp               |  157 ++++++++
 gdb/testsuite/gdb.base/bigcore.exp                 |    1 +
 gdb/testsuite/gdb.base/call-strs.exp               |    9 +-
 gdb/testsuite/gdb.base/default.exp                 |    3 +
 gdb/testsuite/gdb.base/ending-run.exp              |    4 +-
 gdb/testsuite/gdb.base/finish.exp                  |    2 +
 gdb/testsuite/gdb.base/freebpcmd.exp               |    3 +
 gdb/testsuite/gdb.base/funcargs.exp                |    3 +
 gdb/testsuite/gdb.base/gcore.exp                   |    6 +-
 gdb/testsuite/gdb.base/huge.exp                    |    2 +
 gdb/testsuite/gdb.base/interrupt.exp               |    1 +
 gdb/testsuite/gdb.base/nodebug.exp                 |    4 +-
 gdb/testsuite/gdb.base/page.exp                    |    5 -
 gdb/testsuite/gdb.base/ptype.exp                   |    5 +-
 gdb/testsuite/gdb.base/restore.exp                 |    2 +
 gdb/testsuite/gdb.base/return.exp                  |    2 +
 gdb/testsuite/gdb.base/setvar.exp                  |    5 +-
 .../gdb.base/symbol-without-target_section.c}      |   15 +-
 .../gdb.base/symbol-without-target_section.exp     |   39 ++
 gdb/testsuite/gdb.base/watchpoint-solib.exp        |    8 +-
 gdb/testsuite/gdb.base/watchpoints.exp             |    3 +-
 gdb/testsuite/gdb.cp/nsrecurs.cc                   |   45 ++-
 gdb/testsuite/gdb.cp/nsrecurs.exp                  |   15 +-
 gdb/testsuite/gdb.cp/nsusing.cc                    |   54 +--
 gdb/testsuite/gdb.cp/nsusing.exp                   |   30 +-
 gdb/testsuite/gdb.cp/userdef.exp                   |    2 +-
 gdb/testsuite/gdb.cp/virtbase.cc                   |   89 ++++
 gdb/testsuite/gdb.cp/virtbase.exp                  |   62 +++
 gdb/testsuite/gdb.dwarf2/member-ptr-forwardref.exp |    2 +-
 gdb/testsuite/gdb.mi/mi-nonstop.exp                |   19 +-
 gdb/testsuite/gdb.threads/current-lwp-dead.c       |   21 +-
 gdb/testsuite/gdb.threads/gcore-thread.exp         |    2 +
 gdb/testsuite/lib/mi-support.exp                   |   10 +-
 gdb/valops.c                                       |   33 ++-
 gdb/version.in                                     |    2 +-
 include/elf/ChangeLog                              |    6 +-
 include/elf/common.h                               |    2 +
 opcodes/ChangeLog                                  |   24 ++
 opcodes/arm-dis.c                                  |  206 +++++++---
 opcodes/i386-dis.c                                 |   31 +-
 100 files changed, 2677 insertions(+), 420 deletions(-)
 create mode 100644 gdb/testsuite/gdb.ada/call_pn.exp
 create mode 100644 gdb/testsuite/gdb.ada/call_pn/foo.adb
 create mode 100644 gdb/testsuite/gdb.ada/call_pn/pck.adb
 create mode 100644 gdb/testsuite/gdb.ada/call_pn/pck.ads
 create mode 100644 gdb/testsuite/gdb.ada/rec_return.exp
 create mode 100644 gdb/testsuite/gdb.ada/rec_return/foo.adb
 create mode 100644 gdb/testsuite/gdb.ada/rec_return/pck.adb
 create mode 100644 gdb/testsuite/gdb.ada/rec_return/pck.ads
 create mode 100644 gdb/testsuite/gdb.arch/thumb2-it.S
 create mode 100644 gdb/testsuite/gdb.arch/thumb2-it.exp
 rename gdb/{gnu-v2-abi.h => testsuite/gdb.base/symbol-without-target_section.c} (67%)
 create mode 100644 gdb/testsuite/gdb.base/symbol-without-target_section.exp
 create mode 100644 gdb/testsuite/gdb.cp/virtbase.cc
 create mode 100644 gdb/testsuite/gdb.cp/virtbase.exp

First 500 lines of diff:
diff --git a/ChangeLog b/ChangeLog
index 01bfa10..7d8f7f2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+	Sync from gcc:
+	* configure.ac: Add "recommended" version checks for GMP/MPC.
+	Update recommended GMP/MPFR/MPC versions.
+	* configure: Regenerate.
+
 2010-01-25  Joern Rennecke  <amylaar@spamcop.net>
 
 	gcc PR libstdc++/36101, gcc PR libstdc++/42813
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index ce2c0c6..791ec74 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,28 @@
+2010-02-02  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf-bfd.h (elfcore_write_xstatereg): New.
+
+	* elf.c (elfcore_grok_xstatereg): New.
+	(elfcore_write_xstatereg): Likewise.
+	(elfcore_grok_note): Handle NT_X86_XSTATE.
+	(elfcore_write_register_note): Handle .reg-xstate section.
+
+2010-02-01  Tristan Gingold  <gingold@adacore.com>
+
+	* som.c (som_write_ar_hdr): Define this macro.
+
+2010-01-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+	* elf32-hppa.c (final_link_relocate): Convert R_PARISC_TLS_GD21L,
+	R_PARISC_TLS_LDM21L and R_PARISC_TLS_IE21L relocations that use the
+	linkage table pointer to use the global table pointer if not doing
+	a shared link.
+
+2010-01-29  Joel Brobecker  <brobecker@adacore.com>
+
+	* elf.c (elfcore_grok_lwpstatus): Do not overwrite the core signal
+	if it has already been set.
+
 2010-01-27  Tristan Gingold  <gingold@adacore.com>
 
 	* vms.h: Remove trailing spaces.
diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h
index daa2b62..3c3ac9b 100644
--- a/bfd/elf-bfd.h
+++ b/bfd/elf-bfd.h
@@ -2149,6 +2149,8 @@ extern char *elfcore_write_prfpreg
   (bfd *, char *, int *, const void *, int);
 extern char *elfcore_write_prxfpreg
   (bfd *, char *, int *, const void *, int);
+extern char *elfcore_write_xstatereg
+  (bfd *, char *, int *, const void *, int);
 extern char *elfcore_write_ppc_vmx
   (bfd *, char *, int *, const void *, int);
 extern char *elfcore_write_ppc_vsx
diff --git a/bfd/elf.c b/bfd/elf.c
index aac3314..c176256 100644
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -7628,6 +7628,16 @@ elfcore_grok_prxfpreg (bfd *abfd, Elf_Internal_Note *note)
   return elfcore_make_note_pseudosection (abfd, ".reg-xfp", note);
 }
 
+/* Linux dumps the Intel XSAVE extended state in a note named "LINUX"
+   with a note type of NT_X86_XSTATE.  Just include the whole note's
+   contents literally.  */
+
+static bfd_boolean
+elfcore_grok_xstatereg (bfd *abfd, Elf_Internal_Note *note)
+{
+  return elfcore_make_note_pseudosection (abfd, ".reg-xstate", note);
+}
+
 static bfd_boolean
 elfcore_grok_ppc_vmx (bfd *abfd, Elf_Internal_Note *note)
 {
@@ -7800,7 +7810,10 @@ elfcore_grok_lwpstatus (bfd *abfd, Elf_Internal_Note *note)
   memcpy (&lwpstat, note->descdata, sizeof (lwpstat));
 
   elf_tdata (abfd)->core_lwpid = lwpstat.pr_lwpid;
-  elf_tdata (abfd)->core_signal = lwpstat.pr_cursig;
+  /* Do not overwrite the core signal if it has already been set by
+     another thread.  */
+  if (elf_tdata (abfd)->core_signal == 0)
+    elf_tdata (abfd)->core_signal = lwpstat.pr_cursig;
 
   /* Make a ".reg/999" section.  */
 
@@ -7993,6 +8006,13 @@ elfcore_grok_note (bfd *abfd, Elf_Internal_Note *note)
       else
 	return TRUE;
 
+    case NT_X86_XSTATE:		/* Linux XSAVE extension */
+      if (note->namesz == 6
+	  && strcmp (note->namedata, "LINUX") == 0)
+	return elfcore_grok_xstatereg (abfd, note);
+      else
+	return TRUE;
+
     case NT_PPC_VMX:
       if (note->namesz == 6
 	  && strcmp (note->namedata, "LINUX") == 0)
@@ -8633,6 +8653,15 @@ elfcore_write_prxfpreg (bfd *abfd,
 }
 
 char *
+elfcore_write_xstatereg (bfd *abfd, char *buf, int *bufsiz,
+			 const void *xfpregs, int size)
+{
+  char *note_name = "LINUX";
+  return elfcore_write_note (abfd, buf, bufsiz,
+			     note_name, NT_X86_XSTATE, xfpregs, size);
+}
+
+char *
 elfcore_write_ppc_vmx (bfd *abfd,
 		       char *buf,
 		       int *bufsiz,
@@ -8681,6 +8710,8 @@ elfcore_write_register_note (bfd *abfd,
     return elfcore_write_prfpreg (abfd, buf, bufsiz, data, size);
   if (strcmp (section, ".reg-xfp") == 0)
     return elfcore_write_prxfpreg (abfd, buf, bufsiz, data, size);
+  if (strcmp (section, ".reg-xstate") == 0)
+    return elfcore_write_xstatereg (abfd, buf, bufsiz, data, size);
   if (strcmp (section, ".reg-ppc-vmx") == 0)
     return elfcore_write_ppc_vmx (abfd, buf, bufsiz, data, size);
   if (strcmp (section, ".reg-ppc-vsx") == 0)
diff --git a/bfd/elf32-hppa.c b/bfd/elf32-hppa.c
index 2a5547b..babe9f2 100644
--- a/bfd/elf32-hppa.c
+++ b/bfd/elf32-hppa.c
@@ -3388,12 +3388,19 @@ final_link_relocate (asection *input_section,
     case R_PARISC_DPREL21L:
     case R_PARISC_DPREL14R:
     case R_PARISC_DPREL14F:
+    case R_PARISC_TLS_GD21L:
+    case R_PARISC_TLS_LDM21L:
+    case R_PARISC_TLS_IE21L:
       /* Convert instructions that use the linkage table pointer (r19) to
 	 instructions that use the global data pointer (dp).  This is the
 	 most efficient way of using PIC code in an incomplete executable,
 	 but the user must follow the standard runtime conventions for
 	 accessing data for this to work.  */
-      if (orig_r_type == R_PARISC_DLTIND21L)
+      if (orig_r_type == R_PARISC_DLTIND21L
+	  || (!info->shared
+	      && (r_type == R_PARISC_TLS_GD21L
+		  || r_type == R_PARISC_TLS_LDM21L
+		  || r_type == R_PARISC_TLS_IE21L)))
 	{
 	  /* Convert addil instructions if the original reloc was a
 	     DLTIND21L.  GCC sometimes uses a register other than r19 for
@@ -3444,11 +3451,8 @@ final_link_relocate (asection *input_section,
     case R_PARISC_DLTIND21L:
     case R_PARISC_DLTIND14R:
     case R_PARISC_DLTIND14F:
-    case R_PARISC_TLS_GD21L:
     case R_PARISC_TLS_GD14R:
-    case R_PARISC_TLS_LDM21L:
     case R_PARISC_TLS_LDM14R:
-    case R_PARISC_TLS_IE21L:
     case R_PARISC_TLS_IE14R:
       value -= elf_gp (input_section->output_section->owner);
       break;
diff --git a/bfd/som.c b/bfd/som.c
index 7a034b1..fbdc2b4 100644
--- a/bfd/som.c
+++ b/bfd/som.c
@@ -6324,6 +6324,7 @@ som_bfd_link_split_section (bfd *abfd ATTRIBUTE_UNUSED, asection *sec)
 
 #define	som_close_and_cleanup		        som_bfd_free_cached_info
 #define som_read_ar_hdr			        _bfd_generic_read_ar_hdr
+#define som_write_ar_hdr		        _bfd_generic_write_ar_hdr
 #define som_openr_next_archived_file	        bfd_generic_openr_next_archived_file
 #define som_get_elt_at_index		        _bfd_generic_get_elt_at_index
 #define som_generic_stat_arch_elt	        bfd_generic_stat_arch_elt
diff --git a/bfd/version.h b/bfd/version.h
index 61fb4a2..51418c7 100644
--- a/bfd/version.h
+++ b/bfd/version.h
@@ -1,4 +1,4 @@
-#define BFD_VERSION_DATE 20100128
+#define BFD_VERSION_DATE 20100203
 #define BFD_VERSION @bfd_version@
 #define BFD_VERSION_STRING  @bfd_version_package@ @bfd_version_string@
 #define REPORT_BUGS_TO @report_bugs_to@
diff --git a/configure b/configure
index ad16b8f..e6cde58 100755
--- a/configure
+++ b/configure
@@ -5466,18 +5466,38 @@ if test -d ${srcdir}/gcc && test "x$have_gmp" = xno; then
   have_gmp=yes
   saved_CFLAGS="$CFLAGS"
   CFLAGS="$CFLAGS $gmpinc"
-  # Check GMP actually works
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for correct version of gmp.h" >&5
-$as_echo_n "checking for correct version of gmp.h... " >&6; }
+  # Check for the recommended and required versions of GMP.
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the correct version of gmp.h" >&5
+$as_echo_n "checking for the correct version of gmp.h... " >&6; }
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include "gmp.h"
+int
+main ()
+{
+
+  #define GCC_GMP_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
+  #define GCC_GMP_VERSION GCC_GMP_VERSION_NUM(__GNU_MP_VERSION,__GNU_MP_VERSION_MINOR,__GNU_MP_VERSION_PATCHLEVEL)
+  #if GCC_GMP_VERSION < GCC_GMP_VERSION_NUM(4,2,0)
+  choke me
+  #endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
 
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include "gmp.h"
+#include <gmp.h>
 int
 main ()
 {
 
-  #if __GNU_MP_VERSION < 4 || (__GNU_MP_VERSION == 4 && __GNU_MP_VERSION_MINOR < 2)
+  #define GCC_GMP_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
+  #define GCC_GMP_VERSION GCC_GMP_VERSION_NUM(__GNU_MP_VERSION,__GNU_MP_VERSION_MINOR,__GNU_MP_VERSION_PATCHLEVEL)
+  #if GCC_GMP_VERSION < GCC_GMP_VERSION_NUM(4,3,2)
   choke me
   #endif
 
@@ -5489,6 +5509,11 @@ if ac_fn_c_try_compile "$LINENO"; then :
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: buggy but acceptable" >&5
+$as_echo "buggy but acceptable" >&6; }
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }; have_gmp=no
 fi
@@ -5496,8 +5521,9 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
   # If we have GMP, check the MPFR version.
   if test x"$have_gmp" = xyes; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for correct version of mpfr.h" >&5
-$as_echo_n "checking for correct version of mpfr.h... " >&6; }
+    # Check for the recommended and required versions of MPFR.
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the correct version of mpfr.h" >&5
+$as_echo_n "checking for the correct version of mpfr.h... " >&6; }
     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <gmp.h>
@@ -5523,7 +5549,7 @@ int
 main ()
 {
 
-    #if MPFR_VERSION < MPFR_VERSION_NUM(2,3,2)
+    #if MPFR_VERSION < MPFR_VERSION_NUM(2,4,2)
     choke me
     #endif
 
@@ -5548,6 +5574,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
   # Check for the MPC header version.
   if test x"$have_gmp" = xyes ; then
+    # Check for the recommended and required versions of MPC.
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the correct version of mpc.h" >&5
 $as_echo_n "checking for the correct version of mpc.h... " >&6; }
     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -5557,7 +5584,23 @@ int
 main ()
 {
 
-    #if MPC_VERSION < MPC_VERSION_NUM (0,8,0)
+    #if MPC_VERSION < MPC_VERSION_NUM(0,8,0)
+    choke me
+    #endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <mpc.h>
+int
+main ()
+{
+
+    #if MPC_VERSION < MPC_VERSION_NUM(0,8,1)
     choke me
     #endif
 
@@ -5569,6 +5612,11 @@ if ac_fn_c_try_compile "$LINENO"; then :
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: buggy but acceptable" >&5
+$as_echo "buggy but acceptable" >&6; }
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }; have_gmp=no
 fi
@@ -5624,8 +5672,10 @@ rm -f core conftest.err conftest.$ac_objext \
 
   CFLAGS="$saved_CFLAGS"
 
+# The library versions listed in the error message below should match
+# the HARD-minimums enforced above.
   if test x$have_gmp != xyes; then
-    as_fn_error "Building GCC requires GMP 4.2+, MPFR 2.3.2+ and MPC 0.8.0+.
+    as_fn_error "Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+.
 Try the --with-gmp, --with-mpfr and/or --with-mpc options to specify
 their locations.  Source code for these libraries can be found at
 their respective hosting sites as well as at
diff --git a/configure.ac b/configure.ac
index 75af4e5..be6337b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1341,18 +1341,27 @@ if test -d ${srcdir}/gcc && test "x$have_gmp" = xno; then
   have_gmp=yes
   saved_CFLAGS="$CFLAGS"
   CFLAGS="$CFLAGS $gmpinc"
-  # Check GMP actually works
-  AC_MSG_CHECKING([for correct version of gmp.h])
+  # Check for the recommended and required versions of GMP.
+  AC_MSG_CHECKING([for the correct version of gmp.h])
   AC_TRY_COMPILE([#include "gmp.h"],[
-  #if __GNU_MP_VERSION < 4 || (__GNU_MP_VERSION == 4 && __GNU_MP_VERSION_MINOR < 2)
+  #define GCC_GMP_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
+  #define GCC_GMP_VERSION GCC_GMP_VERSION_NUM(__GNU_MP_VERSION,__GNU_MP_VERSION_MINOR,__GNU_MP_VERSION_PATCHLEVEL)
+  #if GCC_GMP_VERSION < GCC_GMP_VERSION_NUM(4,2,0)
   choke me
   #endif
-  ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]); have_gmp=no])
+  ], AC_TRY_COMPILE([#include <gmp.h>],[
+  #define GCC_GMP_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
+  #define GCC_GMP_VERSION GCC_GMP_VERSION_NUM(__GNU_MP_VERSION,__GNU_MP_VERSION_MINOR,__GNU_MP_VERSION_PATCHLEVEL)
+  #if GCC_GMP_VERSION < GCC_GMP_VERSION_NUM(4,3,2)
+  choke me
+  #endif
+  ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([buggy but acceptable])]),
+   [AC_MSG_RESULT([no]); have_gmp=no])
 
   # If we have GMP, check the MPFR version.
   if test x"$have_gmp" = xyes; then
-    dnl MPFR 2.3.1 is acceptable, but MPFR 2.3.2 is better.
-    AC_MSG_CHECKING([for correct version of mpfr.h])
+    # Check for the recommended and required versions of MPFR.
+    AC_MSG_CHECKING([for the correct version of mpfr.h])
     AC_TRY_COMPILE([#include <gmp.h>
     #include <mpfr.h>],[
     #if MPFR_VERSION < MPFR_VERSION_NUM(2,3,1)
@@ -1360,7 +1369,7 @@ if test -d ${srcdir}/gcc && test "x$have_gmp" = xno; then
     #endif
     ], AC_TRY_COMPILE([#include <gmp.h>
     #include <mpfr.h>],[
-    #if MPFR_VERSION < MPFR_VERSION_NUM(2,3,2)
+    #if MPFR_VERSION < MPFR_VERSION_NUM(2,4,2)
     choke me
     #endif
     ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([buggy but acceptable])]),
@@ -1369,12 +1378,18 @@ if test -d ${srcdir}/gcc && test "x$have_gmp" = xno; then
 
   # Check for the MPC header version.
   if test x"$have_gmp" = xyes ; then
+    # Check for the recommended and required versions of MPC.
     AC_MSG_CHECKING([for the correct version of mpc.h])
     AC_TRY_COMPILE([#include <mpc.h>],[
-    #if MPC_VERSION < MPC_VERSION_NUM (0,8,0)
+    #if MPC_VERSION < MPC_VERSION_NUM(0,8,0)
     choke me
     #endif
-    ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]); have_gmp=no])
+    ], AC_TRY_COMPILE([#include <mpc.h>],[
+    #if MPC_VERSION < MPC_VERSION_NUM(0,8,1)
+    choke me
+    #endif
+    ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([buggy but acceptable])]),
+     [AC_MSG_RESULT([no]); have_gmp=no])
   fi
 
   # Now check the MPFR library.
@@ -1406,8 +1421,10 @@ if test -d ${srcdir}/gcc && test "x$have_gmp" = xno; then
 
   CFLAGS="$saved_CFLAGS"
 
+# The library versions listed in the error message below should match
+# the HARD-minimums enforced above.
   if test x$have_gmp != xyes; then
-    AC_MSG_ERROR([Building GCC requires GMP 4.2+, MPFR 2.3.2+ and MPC 0.8.0+.
+    AC_MSG_ERROR([Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+.
 Try the --with-gmp, --with-mpfr and/or --with-mpc options to specify
 their locations.  Source code for these libraries can be found at
 their respective hosting sites as well as at
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index db65d6d..c81a7c6 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,192 @@
+2010-02-02  Tom Tromey  <tromey@redhat.com>
+
+	* valops.c (value_cast_structs): Try downcasting using the RTTI
+	type.
+
+2010-02-02  Tom Tromey  <tromey@redhat.com>
+
+	* gnu-v2-abi.c: Don't include gnu-v2-abi.h.
+	(gnuv2_baseclass_offset): Now static.
+	* Makefile.in (HFILES_NO_SRCDIR): Remove gnu-v2-abi.h.
+	* gnu-v2-abi.h: Remove.
+
+2010-02-02  Tom Tromey  <tromey@redhat.com>
+
+	* m2-typeprint.c (m2_record_fields): Don't use
+	TYPE_DECLARED_TYPE.
+	* gdbtypes.h (TYPE_DECLARED_CLASS): New macro.
+	(struct main_type) <flag_declared_class>: New field.
+	(struct cplus_struct_type) <declared_type>: Remove.
+	<ntemplate_args>: Move earlier.
+	(DECLARED_TYPE_CLASS, DECLARED_TYPE_UNION, DECLARED_TYPE_STRUCT)
+	(DECLARED_TYPE_TEMPLATE): Remove.
+	(TYPE_DECLARED_TYPE): Remove.
+	* gdbtypes.c (lookup_union): Don't use TYPE_DECLARED_TYPE.
+	* dwarf2read.c (read_structure_type): Set TYPE_DECLARED_CLASS.
+	* c-typeprint.c (c_type_print_base): Use TYPE_DECLARED_CLASS, not
+	TYPE_DECLARED_TYPE.
+
+2010-02-02  Tom Tromey  <tromey@redhat.com>
+
+	PR c++/11226, PR c++/9629, PR c++/9688, PR c++/8890:
+	* valops.c (search_struct_field): Compute nbases after calling
+	CHECK_TYPEDEF.
+	(check_field): Call CHECK_TYPEDEF.
+	* cp-valprint.c (cp_print_value): Pass correct address to
+	baseclass_offset.  Fix check for virtual base past the end of the
+	object.  Don't offset address passed to cp_print_value_fields or
+	apply_val_pretty_printer.
+	(cp_print_value_fields): Fix call to val_print.
+	(cp_print_value_fields_rtti): New function.
+	* c-valprint.c (c_val_print): Use cp_print_value_fields_rtti.
+	* p-valprint.c (pascal_object_print_value_fields): Fix call to
+	val_print.
+	* python/py-prettyprint.c (apply_val_pretty_printer): Add embedded
+	offset to address.
+	* language.h (struct language_defn) <la_val_print>: Document.
+	* c-lang.h (cp_print_value_fields_rtti): Declare.
+
+2010-02-01  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	PR libc/11214:
+	* linux-low.c (linux_tracefork_child) [!(__UCLIBC__ && HAS_NOMMU)]: New.
+	(linux_test_for_tracefork): Move `stack' into [__UCLIBC__ && HAS_NOMMU].
+	(linux_test_for_tracefork) [!(__UCLIBC__ && HAS_NOMMU)]: New.
+
+2010-02-01  Michael Matz  <matz@suse.de>
+	    Daniel Jacobowitz  <dan@codesourcery.com>
+
+	* i386-tdep.c (i386_frame_cache): Assume valid anonymous
+	functions use a frame pointer.
+
+2010-02-01  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	* solib-svr4.c (scan_dyntag): New variable dyn_addr.  Replace gdb_assert
+	by a conditional setting DYN_ADDR.  Use DYN_ADDR.
+	* config/djgpp/fnchange.lst: Add translations for
+	symbol-without-target_section.exp and symbol-without-target_section.c.
+
+2010-02-01  Daniel Jacobowitz  <dan@codesourcery.com>
+
+	* gdbarch.sh: Set LANG and LC_ALL to C, not c.
+	(remote_breakpoint_for_pc): Correct invalid_p check.
+	* gdbarch.c: Regenerated.
+
+2010-02-01  Daniel Jacobowitz  <dan@codesourcery.com>
+
+	* arm-tdep.c (arm_find_mapping_symbol): New function, from
+	arm_pc_is_thumb.
+	(arm_pc_is_thumb): Use arm_find_mapping_symbol.
+	(extend_buffer_earlier): New function.
+	(MAX_IT_BLOCK_PREFIX, IT_SCAN_THRESHOLD): New constants.
+	(arm_adjust_breakpoint_address): New function.
+	(arm_gdbarch_init): Register arm_adjust_breakpoint_address.
+
+2010-02-01  Daniel Jacobowitz  <dan@codesourcery.com>


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


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

* [SCM]  archer-jankratochvil-fedora13: Merge remote branch 'origin/archer-jankratochvil-ifunc' into archer-jankratochvil-fedora13
@ 2010-02-01  0:27 jkratoch
  0 siblings, 0 replies; 3+ messages in thread
From: jkratoch @ 2010-02-01  0:27 UTC (permalink / raw)
  To: archer-commits

The branch, archer-jankratochvil-fedora13 has been updated
       via  5a573e8b26a2f0a6947d4c0249e43e5456610860 (commit)
       via  39fa579549150c23cdd78658461afa6caea27257 (commit)
      from  39c5a8b75fad3acd7204903db5dee025055a4594 (commit)

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

- Log -----------------------------------------------------------------
commit 5a573e8b26a2f0a6947d4c0249e43e5456610860
Merge: 39c5a8b75fad3acd7204903db5dee025055a4594 39fa579549150c23cdd78658461afa6caea27257
Author: Jan Kratochvil <jkratoch@host1.dyn.jankratochvil.net>
Date:   Mon Feb 1 01:27:26 2010 +0100

    Merge remote branch 'origin/archer-jankratochvil-ifunc' into archer-jankratochvil-fedora13

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

Summary of changes:
 gdb/configure.tgt |   24 ++++++++++++++----------
 1 files changed, 14 insertions(+), 10 deletions(-)

First 500 lines of diff:
diff --git a/gdb/configure.tgt b/gdb/configure.tgt
index 62e6683..2b9bb2f 100644
--- a/gdb/configure.tgt
+++ b/gdb/configure.tgt
@@ -40,7 +40,7 @@ alpha*-*-osf*)
 alpha*-*-linux*)
 	# Target: Little-endian Alpha running Linux
 	gdb_target_obs="alpha-tdep.o alpha-mdebug-tdep.o alpha-linux-tdep.o \
-			solib.o solib-svr4.o"
+			solib.o solib-svr4.o linux-tdep.o"
 	;;
 alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu)
 	# Target: FreeBSD/alpha
@@ -67,7 +67,7 @@ alpha*-*-*)
 am33_2.0*-*-linux*)
 	# Target: Matsushita mn10300 (AM33) running Linux
 	gdb_target_obs="mn10300-tdep.o mn10300-linux-tdep.o corelow.o \
-			solib.o solib-svr4.o"
+			solib.o solib-svr4.o linux-tdep.o"
 	;;
 
 arm*-wince-pe | arm*-*-mingw32ce*)
@@ -233,7 +233,7 @@ i[34567]86-*-*)
 
 ia64-*-linux*)
 	# Target: Intel IA-64 running GNU/Linux
-	gdb_target_obs="ia64-tdep.o ia64-linux-tdep.o \
+	gdb_target_obs="ia64-tdep.o ia64-linux-tdep.o linux-tdep.o \
 			solib.o solib-svr4.o symfile-mem.o"
 	build_gdbserver=yes
 	;;
@@ -263,7 +263,8 @@ m32c-*-*)
 m32r*-*-linux*)
 	# Target: Renesas M32R running GNU/Linux
 	gdb_target_obs="m32r-tdep.o m32r-linux-tdep.o remote-m32r-sdi.o \
-			glibc-tdep.o solib.o solib-svr4.o symfile-mem.o"
+			glibc-tdep.o solib.o solib-svr4.o symfile-mem.o \
+			linux-tdep.o"
 	gdb_sim=../sim/m32r/libsim.a
 	build_gdbserver=yes
 	;;
@@ -317,7 +318,7 @@ microblaze*-linux-*)
 	# Target: Xilinx MicroBlaze running Linux
 	gdb_target_obs="microblaze-tdep.o microblaze-linux-tdep.o microblaze-rom.o \
 			monitor.o dsrec.o solib.o solib-svr4.o corelow.o \
-			symfile-mem.o"
+			symfile-mem.o linux-tdep.o"
 	gdb_sim=../sim/microblaze/libsim.a
 	;;
 microblaze*-xilinx-*)
@@ -337,7 +338,8 @@ mips*-sgi-irix6*)
 mips*-*-linux*)
 	# Target: Linux/MIPS
 	gdb_target_obs="mips-tdep.o mips-linux-tdep.o glibc-tdep.o \
-			corelow.o solib.o solib-svr4.o symfile-mem.o"
+			corelow.o solib.o solib-svr4.o symfile-mem.o \
+			linux-tdep.o"
 	gdb_sim=../sim/mips/libsim.a
 	build_gdbserver=yes
 	;;
@@ -427,7 +429,7 @@ sh*-*-linux*)
 	# Target: GNU/Linux Super-H
 	gdb_target_obs="sh-tdep.o sh64-tdep.o sh-linux-tdep.o monitor.o \
 			dsrec.o solib.o solib-svr4.o symfile-mem.o \
-			glibc-tdep.o corelow.o"
+			glibc-tdep.o corelow.o linux-tdep.o"
 	gdb_sim=../sim/sh/libsim.a
 	build_gdbserver=yes
 	;;
@@ -455,7 +457,8 @@ sh*)
 sparc-*-linux*)
 	# Target: GNU/Linux SPARC
 	gdb_target_obs="sparc-tdep.o sparc-sol2-tdep.o sol2-tdep.o \
-			sparc-linux-tdep.o solib.o solib-svr4.o symfile-mem.o"
+			sparc-linux-tdep.o solib.o solib-svr4.o symfile-mem.o \
+			linux-tdep.o"
 	if test "x$enable_64_bit_bfd" = "xyes"; then
 	    # Target: GNU/Linux UltraSPARC
 	    gdb_target_obs="sparc64-tdep.o sparc64-sol2-tdep.o \
@@ -466,7 +469,7 @@ sparc64-*-linux*)
 	# Target: GNU/Linux UltraSPARC
 	gdb_target_obs="sparc64-tdep.o sparc64-sol2-tdep.o sol2-tdep.o \
 			sparc64-linux-tdep.o sparc-tdep.o sparc-sol2-tdep.o \
-			sparc-linux-tdep.o solib.o solib-svr4.o"
+			sparc-linux-tdep.o solib.o solib-svr4.o linux-tdep.o"
 	build_gdbserver=yes
 	;;
 sparc*-*-freebsd* | sparc*-*-kfreebsd*-gnu)
@@ -601,7 +604,8 @@ x86_64-*-openbsd*)
 xtensa*-*-linux*)	gdb_target=linux
 	# Target: GNU/Linux Xtensa
 	gdb_target_obs="xtensa-tdep.o xtensa-config.o xtensa-linux-tdep.o \
-			solib.o solib-svr4.o corelow.o symfile-mem.o"
+			solib.o solib-svr4.o corelow.o symfile-mem.o \
+			linux-tdep.o"
 	build_gdbserver=yes
 	;;
 xtensa*)


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


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

* [SCM]  archer-jankratochvil-fedora13: Merge remote branch 'origin/archer-jankratochvil-ifunc' into archer-jankratochvil-fedora13
@ 2010-01-28 11:51 jkratoch
  0 siblings, 0 replies; 3+ messages in thread
From: jkratoch @ 2010-01-28 11:51 UTC (permalink / raw)
  To: archer-commits

The branch, archer-jankratochvil-fedora13 has been updated
       via  b75c49057687ff688cbce7816d0108aba602bf91 (commit)
       via  a657fc151d11d96adbd059fb69d7d1f53cad2246 (commit)
       via  791165df07fd22d381def1318954c389a606f81a (commit)
       via  49924e3697112b49620dcbcfefef4787cb79922c (commit)
       via  152906636649bdd04bf7a52483c3b21bb5edc81e (commit)
       via  0f7e38dc2606612ecb326c1c31f52e355b8eee77 (commit)
       via  9dc87bd7cc7c2974d470472ea29215d7cb13fb47 (commit)
       via  99f7e0fb89f6cd81d6342da0bcc905f296c30003 (commit)
       via  e4ba56060c812b574652769ff1bd2b8ee689c6a3 (commit)
       via  d2236f7c0c3e8aa6d8b0ea987612f94b5f72a08b (commit)
       via  2766fef61878727a8bfdd77677923aeaa04afd6c (commit)
       via  4ddb019e8d35f210ab8a4e67a8546067f5348859 (commit)
       via  dc0454a506f11418a42c2c3d53f94fd4df369a12 (commit)
       via  b1b2661e0122883cc6479613c4799a5fa998f18c (commit)
      from  34e35f39ed8503a7c3a39cd99f75eac6f8c42956 (commit)

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

- Log -----------------------------------------------------------------
commit b75c49057687ff688cbce7816d0108aba602bf91
Merge: 34e35f39ed8503a7c3a39cd99f75eac6f8c42956 a657fc151d11d96adbd059fb69d7d1f53cad2246
Author: Jan Kratochvil <jkratoch@host1.dyn.jankratochvil.net>
Date:   Thu Jan 28 12:50:16 2010 +0100

    Merge remote branch 'origin/archer-jankratochvil-ifunc' into archer-jankratochvil-fedora13

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

Summary of changes:
 gdb/alpha-linux-tdep.c                             |    4 +
 gdb/amd64-linux-tdep.c                             |    3 +
 gdb/arm-linux-tdep.c                               |    3 +
 gdb/elfread.c                                      |    8 +-
 gdb/frv-linux-tdep.c                               |   21 ++++-
 gdb/frv-tdep.c                                     |    2 +-
 gdb/frv-tdep.h                                     |    3 +
 gdb/gdbtypes.c                                     |    9 ++
 gdb/gdbtypes.h                                     |   13 +++
 gdb/hppa-linux-tdep.c                              |   21 ++++-
 gdb/hppa-tdep.c                                    |    2 +-
 gdb/hppa-tdep.h                                    |    4 +
 gdb/i386-linux-tdep.c                              |    3 +
 gdb/ia64-linux-tdep.c                              |    4 +
 gdb/infcall.c                                      |   14 ++-
 gdb/linux-tdep.c                                   |   42 +++++++
 gdb/linux-tdep.h                                   |    7 ++
 gdb/m32r-linux-tdep.c                              |    4 +
 gdb/microblaze-linux-tdep.c                        |    4 +
 gdb/minsyms.c                                      |   19 +++-
 gdb/mips-linux-tdep.c                              |    4 +
 gdb/mn10300-linux-tdep.c                           |    4 +
 gdb/objc-lang.c                                    |   21 ++--
 gdb/parse.c                                        |    5 +
 gdb/ppc-linux-tdep.c                               |   16 +++-
 gdb/sh-linux-tdep.c                                |    4 +
 gdb/solib-svr4.c                                   |    3 +-
 gdb/sparc-linux-tdep.c                             |    4 +
 gdb/sparc64-linux-tdep.c                           |    4 +
 gdb/symmisc.c                                      |    3 +
 gdb/symtab.c                                       |    2 +-
 gdb/symtab.h                                       |    4 +
 .../gdb.base/gnu-ifunc-lib.c}                      |   45 +++++++--
 .../gdb.base/gnu-ifunc.c}                          |   27 ++++--
 gdb/testsuite/gdb.base/gnu-ifunc.exp               |  115 ++++++++++++++++++++
 gdb/xtensa-linux-tdep.c                            |    4 +
 36 files changed, 413 insertions(+), 42 deletions(-)
 copy gdb/{linux-tdep.h => testsuite/gdb.base/gnu-ifunc-lib.c} (52%)
 copy gdb/{linux-tdep.h => testsuite/gdb.base/gnu-ifunc.c} (63%)
 create mode 100644 gdb/testsuite/gdb.base/gnu-ifunc.exp

First 500 lines of diff:
diff --git a/gdb/alpha-linux-tdep.c b/gdb/alpha-linux-tdep.c
index 3c71f2f..bbfe5a1 100644
--- a/gdb/alpha-linux-tdep.c
+++ b/gdb/alpha-linux-tdep.c
@@ -26,6 +26,7 @@
 #include "symtab.h"
 #include "regset.h"
 #include "regcache.h"
+#include "linux-tdep.h"
 
 #include "alpha-tdep.h"
 
@@ -236,6 +237,9 @@ alpha_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
 
   set_gdbarch_regset_from_core_section
     (gdbarch, alpha_linux_regset_from_core_section);
+
+  set_gdbarch_convert_from_func_ptr_addr (gdbarch,
+					  linux_convert_from_func_ptr_addr);
 }
 
 /* Provide a prototype to silence -Wmissing-prototypes.  */
diff --git a/gdb/amd64-linux-tdep.c b/gdb/amd64-linux-tdep.c
index 01cc1ce..2a0fa84 100644
--- a/gdb/amd64-linux-tdep.c
+++ b/gdb/amd64-linux-tdep.c
@@ -1481,6 +1481,9 @@ amd64_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
   amd64_linux_record_tdep.arg6 = AMD64_R9_REGNUM;
 
   tdep->i386_syscall_record = amd64_linux_syscall_record;
+
+  set_gdbarch_convert_from_func_ptr_addr (gdbarch,
+					  linux_convert_from_func_ptr_addr);
 }
 \f
 
diff --git a/gdb/arm-linux-tdep.c b/gdb/arm-linux-tdep.c
index 661a5bd..dc91ab1 100644
--- a/gdb/arm-linux-tdep.c
+++ b/gdb/arm-linux-tdep.c
@@ -907,6 +907,9 @@ arm_linux_init_abi (struct gdbarch_info info,
   set_gdbarch_displaced_step_free_closure (gdbarch,
 					   simple_displaced_step_free_closure);
   set_gdbarch_displaced_step_location (gdbarch, displaced_step_at_entry_point);
+
+  set_gdbarch_convert_from_func_ptr_addr (gdbarch,
+					  linux_convert_from_func_ptr_addr);
 }
 
 /* Provide a prototype to silence -Wmissing-prototypes.  */
diff --git a/gdb/elfread.c b/gdb/elfread.c
index 4e208d1..dc8a752 100644
--- a/gdb/elfread.c
+++ b/gdb/elfread.c
@@ -179,7 +179,8 @@ record_minimal_symbol (const char *name, int name_len, int copy_name,
 {
   struct gdbarch *gdbarch = get_objfile_arch (objfile);
 
-  if (ms_type == mst_text || ms_type == mst_file_text)
+  if (ms_type == mst_text || ms_type == mst_file_text
+      || ms_type == mst_text_gnu_ifunc)
     address = gdbarch_smash_text_address (gdbarch, address);
 
   return prim_record_minimal_symbol_full (name, name_len, copy_name, address,
@@ -388,7 +389,10 @@ elf_symtab_read (struct objfile *objfile, int type,
 	    {
 	      if (sym->flags & (BSF_GLOBAL | BSF_WEAK))
 		{
-		  ms_type = mst_text;
+		  if (sym->flags & BSF_GNU_INDIRECT_FUNCTION)
+		    ms_type = mst_text_gnu_ifunc;
+		  else
+		    ms_type = mst_text;
 		}
 	      else if ((sym->name[0] == '.' && sym->name[1] == 'L')
 		       || ((sym->flags & BSF_LOCAL)
diff --git a/gdb/frv-linux-tdep.c b/gdb/frv-linux-tdep.c
index c051a4d..5b07063 100644
--- a/gdb/frv-linux-tdep.c
+++ b/gdb/frv-linux-tdep.c
@@ -32,6 +32,7 @@
 #include "frame-unwind.h"
 #include "regset.h"
 #include "gdb_string.h"
+#include "linux-tdep.h"
 
 /* Define the size (in bytes) of an FR-V instruction.  */
 static const int frv_instr_size = 4;
@@ -486,7 +487,21 @@ frv_linux_regset_from_core_section (struct gdbarch *gdbarch,
   return NULL;
 }
 
-\f
+static CORE_ADDR
+frv_linux_convert_from_func_ptr_addr (struct gdbarch *gdbarch,
+				      CORE_ADDR addr,
+				      struct target_ops *targ)
+{
+  CORE_ADDR pc = frv_convert_from_func_ptr_addr (gdbarch, addr, targ);
+  CORE_ADDR resolved;
+
+  resolved = linux_convert_from_func_and_ptr (gdbarch, addr, pc);
+  if (resolved != pc)
+    pc = frv_convert_from_func_ptr_addr (gdbarch, resolved, targ);
+
+  return pc;
+}
+
 static void
 frv_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
 {
@@ -494,6 +509,10 @@ frv_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
   frame_unwind_append_unwinder (gdbarch, &frv_linux_sigtramp_frame_unwind); 
   set_gdbarch_regset_from_core_section (gdbarch,
                                         frv_linux_regset_from_core_section);
+
+  if (frv_abi (gdbarch) == FRV_ABI_FDPIC)
+    set_gdbarch_convert_from_func_ptr_addr (gdbarch,
+					  frv_linux_convert_from_func_ptr_addr);
 }
 
 static enum gdb_osabi
diff --git a/gdb/frv-tdep.c b/gdb/frv-tdep.c
index a38ec8e..b8856a9 100644
--- a/gdb/frv-tdep.c
+++ b/gdb/frv-tdep.c
@@ -1169,7 +1169,7 @@ find_func_descr (struct gdbarch *gdbarch, CORE_ADDR entry_point)
   return descr;
 }
 
-static CORE_ADDR
+CORE_ADDR
 frv_convert_from_func_ptr_addr (struct gdbarch *gdbarch, CORE_ADDR addr,
                                 struct target_ops *targ)
 {
diff --git a/gdb/frv-tdep.h b/gdb/frv-tdep.h
index 25cc9c4..95d5fe5 100644
--- a/gdb/frv-tdep.h
+++ b/gdb/frv-tdep.h
@@ -118,3 +118,6 @@ CORE_ADDR frv_fetch_objfile_link_map (struct objfile *objfile);
 struct target_so_ops;
 extern struct target_so_ops frv_so_ops;
 
+CORE_ADDR frv_convert_from_func_ptr_addr (struct gdbarch *gdbarch,
+					  CORE_ADDR addr,
+					  struct target_ops *targ);
diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
index d2b8b93..2bdaca8 100644
--- a/gdb/gdbtypes.c
+++ b/gdb/gdbtypes.c
@@ -1959,6 +1959,8 @@ init_type (enum type_code code, int length, int flags,
     TYPE_NOTTEXT (type) = 1;
   if (flags & TYPE_FLAG_FIXED_INSTANCE)
     TYPE_FIXED_INSTANCE (type) = 1;
+  if (flags & TYPE_FLAG_GNU_IFUNC)
+    TYPE_GNU_IFUNC (type) = 1;
 
   if (name)
     TYPE_NAME (type) = obsavestring (name, strlen (name),
@@ -3968,6 +3970,8 @@ gdbtypes_post_init (struct gdbarch *gdbarch)
     = lookup_pointer_type (builtin_type->builtin_void);
   builtin_type->builtin_func_ptr
     = lookup_pointer_type (lookup_function_type (builtin_type->builtin_void));
+  builtin_type->builtin_func_func
+    = lookup_function_type (builtin_type->builtin_func_ptr);
 
   /* This type represents a GDB internal function.  */
   builtin_type->internal_fn
@@ -4081,6 +4085,11 @@ objfile_type (struct objfile *objfile)
 		 "<text variable, no debug info>", objfile);
   TYPE_TARGET_TYPE (objfile_type->nodebug_text_symbol)
     = objfile_type->builtin_int;
+  objfile_type->nodebug_text_gnu_ifunc_symbol
+    = init_type (TYPE_CODE_FUNC, 1, TYPE_FLAG_GNU_IFUNC,
+		 "<text gnu-ifunc variable, no debug info>", objfile);
+  TYPE_TARGET_TYPE (objfile_type->nodebug_text_gnu_ifunc_symbol)
+    = objfile_type->nodebug_text_symbol;
   objfile_type->nodebug_data_symbol
     = init_type (TYPE_CODE_INT,
 		 gdbarch_int_bit (gdbarch) / HOST_CHAR_BIT, 0,
diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h
index edae4da..4df2a37 100644
--- a/gdb/gdbtypes.h
+++ b/gdb/gdbtypes.h
@@ -173,6 +173,7 @@ enum type_flag_value
   TYPE_FLAG_FIXED_INSTANCE = (1 << 15),
   TYPE_FLAG_STUB_SUPPORTED = (1 << 16),
   TYPE_FLAG_NOTTEXT = (1 << 17),
+  TYPE_FLAG_GNU_IFUNC = (1 << 18),
 
   /* Used for error-checking.  */
   TYPE_FLAG_MIN = TYPE_FLAG_UNSIGNED
@@ -278,6 +279,12 @@ enum type_instance_flag_value
 
 #define TYPE_NOTTEXT(t)		(TYPE_MAIN_TYPE (t)->flag_nottext)
 
+/* Currently used only for TYPE_CODE_FUNC where specifies the real function
+   address is returned by this function call.  TYPE_TARGET_TYPE determines the
+   final returned function type to be presented to user.  */
+
+#define TYPE_GNU_IFUNC(t)	(TYPE_MAIN_TYPE (t)->flag_gnu_ifunc)
+
 /* Type owner.  If TYPE_OBJFILE_OWNED is true, the type is owned by
    the objfile retrieved as TYPE_OBJFILE.  Otherweise, the type is
    owned by an architecture; TYPE_OBJFILE is NULL in this case.  */
@@ -432,6 +439,7 @@ struct main_type
   unsigned int flag_vector : 1;
   unsigned int flag_stub_supported : 1;
   unsigned int flag_nottext : 1;
+  unsigned int flag_gnu_ifunc : 1;
   unsigned int flag_fixed_instance : 1;
   unsigned int flag_objfile_owned : 1;
   unsigned int flag_discardable : 1;
@@ -1228,6 +1236,10 @@ struct builtin_type
      (*) () can server as a generic function pointer.  */
   struct type *builtin_func_ptr;
 
+  /* `function returning pointer to function (returning void)' type.
+     The final void return type is not significant for it.  */
+  struct type *builtin_func_func;
+
 
   /* Special-purpose types.  */
 
@@ -1268,6 +1280,7 @@ struct objfile_type
 
   /* Types used for symbols with no debug information.  */
   struct type *nodebug_text_symbol;
+  struct type *nodebug_text_gnu_ifunc_symbol;
   struct type *nodebug_data_symbol;
   struct type *nodebug_unknown_symbol;
   struct type *nodebug_tls_symbol;
diff --git a/gdb/hppa-linux-tdep.c b/gdb/hppa-linux-tdep.c
index ebfc2f5..e40105b 100644
--- a/gdb/hppa-linux-tdep.c
+++ b/gdb/hppa-linux-tdep.c
@@ -32,6 +32,7 @@
 #include "regset.h"
 #include "regcache.h"
 #include "hppa-tdep.h"
+#include "linux-tdep.h"
 
 #include "elf/common.h"
 
@@ -513,7 +514,21 @@ hppa_linux_regset_from_core_section (struct gdbarch *gdbarch,
 
   return NULL;
 }
-\f
+
+static CORE_ADDR
+hppa32_linux_convert_from_func_ptr_addr (struct gdbarch *gdbarch,
+					 CORE_ADDR addr,
+					 struct target_ops *targ)
+{
+  CORE_ADDR pc = hppa32_convert_from_func_ptr_addr (gdbarch, addr, targ);
+  CORE_ADDR resolved;
+
+  resolved = linux_convert_from_func_and_ptr (gdbarch, addr, pc);
+  if (resolved != pc)
+    pc = hppa32_convert_from_func_ptr_addr (gdbarch, resolved, targ);
+
+  return pc;
+}
 
 /* Forward declarations.  */
 extern initialize_file_ftype _initialize_hppa_linux_tdep;
@@ -555,6 +570,10 @@ hppa_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
   /* Enable TLS support.  */
   set_gdbarch_fetch_tls_load_module_address (gdbarch,
                                              svr4_fetch_objfile_link_map);
+
+  if (tdep->bytes_per_address == 4)
+    set_gdbarch_convert_from_func_ptr_addr (gdbarch,
+				       hppa32_linux_convert_from_func_ptr_addr);
 }
 
 void
diff --git a/gdb/hppa-tdep.c b/gdb/hppa-tdep.c
index a0665ef..347fbe4 100644
--- a/gdb/hppa-tdep.c
+++ b/gdb/hppa-tdep.c
@@ -1247,7 +1247,7 @@ hppa64_return_value (struct gdbarch *gdbarch, struct type *func_type,
 }
 \f
 
-static CORE_ADDR
+CORE_ADDR
 hppa32_convert_from_func_ptr_addr (struct gdbarch *gdbarch, CORE_ADDR addr,
 				   struct target_ops *targ)
 {
diff --git a/gdb/hppa-tdep.h b/gdb/hppa-tdep.h
index e2d8752..c626637 100644
--- a/gdb/hppa-tdep.h
+++ b/gdb/hppa-tdep.h
@@ -246,4 +246,8 @@ extern int hppa_in_solib_call_trampoline (struct gdbarch *gdbarch,
 					  CORE_ADDR pc, char *name);
 extern CORE_ADDR hppa_skip_trampoline_code (struct frame_info *, CORE_ADDR pc);
 
+extern CORE_ADDR hppa32_convert_from_func_ptr_addr (struct gdbarch *gdbarch,
+						    CORE_ADDR addr,
+						    struct target_ops *targ);
+
 #endif  /* hppa-tdep.h */
diff --git a/gdb/i386-linux-tdep.c b/gdb/i386-linux-tdep.c
index 5acd229..aec1736 100644
--- a/gdb/i386-linux-tdep.c
+++ b/gdb/i386-linux-tdep.c
@@ -798,6 +798,9 @@ i386_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
                                   i386_linux_get_syscall_number);
 
   set_gdbarch_get_siginfo_type (gdbarch, linux_get_siginfo_type);
+
+  set_gdbarch_convert_from_func_ptr_addr (gdbarch,
+					  linux_convert_from_func_ptr_addr);
 }
 
 /* Provide a prototype to silence -Wmissing-prototypes.  */
diff --git a/gdb/ia64-linux-tdep.c b/gdb/ia64-linux-tdep.c
index b12f282..8ddb24a 100644
--- a/gdb/ia64-linux-tdep.c
+++ b/gdb/ia64-linux-tdep.c
@@ -26,6 +26,7 @@
 #include "osabi.h"
 #include "solib-svr4.h"
 #include "symtab.h"
+#include "linux-tdep.h"
 
 /* The sigtramp code is in a non-readable (executable-only) region
    of memory called the ``gate page''.  The addresses in question
@@ -139,6 +140,9 @@ ia64_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
   /* Enable TLS support.  */
   set_gdbarch_fetch_tls_load_module_address (gdbarch,
                                              svr4_fetch_objfile_link_map);
+
+  set_gdbarch_convert_from_func_ptr_addr (gdbarch,
+					  linux_convert_from_func_ptr_addr);
 }
 
 /* Provide a prototype to silence -Wmissing-prototypes.  */
diff --git a/gdb/infcall.c b/gdb/infcall.c
index e736faa..8ec026b 100644
--- a/gdb/infcall.c
+++ b/gdb/infcall.c
@@ -252,9 +252,17 @@ find_function_addr (struct value *function, struct type **retval_type)
       if (TYPE_CODE (ftype) == TYPE_CODE_FUNC
 	  || TYPE_CODE (ftype) == TYPE_CODE_METHOD)
 	{
-	  funaddr = gdbarch_convert_from_func_ptr_addr (gdbarch, funaddr,
-							&current_target);
-	  value_type = TYPE_TARGET_TYPE (ftype);
+	  CORE_ADDR funaddr2;
+
+	  funaddr2 = gdbarch_convert_from_func_ptr_addr (gdbarch, funaddr,
+							 &current_target);
+
+	  /* If TYPE_GNU_IFUNC is currently not resolvable keep its type.  */
+	  if (funaddr2 != funaddr || !TYPE_GNU_IFUNC (ftype))
+	    {
+	      funaddr = funaddr2;
+	      value_type = TYPE_TARGET_TYPE (ftype);
+	    }
 	}
     }
   else if (code == TYPE_CODE_INT)
diff --git a/gdb/linux-tdep.c b/gdb/linux-tdep.c
index 07fd67c..02b2342 100644
--- a/gdb/linux-tdep.c
+++ b/gdb/linux-tdep.c
@@ -23,6 +23,8 @@
 #include "auxv.h"
 #include "target.h"
 #include "elf/common.h"
+#include "value.h"
+#include "infcall.h"
 
 /* This function is suitable for architectures that don't
    extend/override the standard siginfo structure.  */
@@ -152,3 +154,43 @@ linux_has_shared_address_space (void)
 
   return target_is_uclinux;
 }
+
+/* Call gnu-ifunc to resolve breakpoint at its returned function.  */
+
+CORE_ADDR
+linux_convert_from_func_and_ptr (struct gdbarch *gdbarch, CORE_ADDR func_ptr,
+                                 CORE_ADDR pc)
+{
+  struct type *func_func_type = builtin_type (gdbarch)->builtin_func_func;
+  struct minimal_symbol *msymbol;
+  struct value *function, *address;
+
+  if (!target_has_execution)
+    return pc;
+
+  msymbol = lookup_minimal_symbol_by_pc (func_ptr);
+  if (msymbol == NULL)
+    return pc;
+  if (MSYMBOL_TYPE (msymbol) != mst_text_gnu_ifunc)
+    return pc;
+
+  /* Not at the gnu-ifunc entry point?  */
+  if (SYMBOL_VALUE_ADDRESS (msymbol) != func_ptr)
+    return pc;
+
+  function = allocate_value (func_func_type);
+  set_value_address (function, pc);
+
+  /* gnu-ifuncs have no arguments.  FUNCTION is the code instruction address
+     while ADDRESS is a function descriptor.  */
+  address = call_function_by_hand (function, 0, NULL);
+
+  return value_as_address (address);
+}
+
+CORE_ADDR
+linux_convert_from_func_ptr_addr (struct gdbarch *gdbarch, CORE_ADDR addr,
+				  struct target_ops *targ)
+{
+  return linux_convert_from_func_and_ptr (gdbarch, addr, addr);
+}
diff --git a/gdb/linux-tdep.h b/gdb/linux-tdep.h
index a8b522b..282190e 100644
--- a/gdb/linux-tdep.h
+++ b/gdb/linux-tdep.h
@@ -22,4 +22,11 @@
 
 struct type *linux_get_siginfo_type (struct gdbarch *);
 
+CORE_ADDR linux_convert_from_func_and_ptr (struct gdbarch *gdbarch,
+					   CORE_ADDR func_ptr, CORE_ADDR pc);
+
+CORE_ADDR linux_convert_from_func_ptr_addr (struct gdbarch *gdbarch,
+					    CORE_ADDR addr,
+					    struct target_ops *targ);
+
 #endif /* linux-tdep.h */
diff --git a/gdb/m32r-linux-tdep.c b/gdb/m32r-linux-tdep.c
index 6804609..2cb1bf9 100644
--- a/gdb/m32r-linux-tdep.c
+++ b/gdb/m32r-linux-tdep.c
@@ -30,6 +30,7 @@
 #include "gdb_string.h"
 
 #include "glibc-tdep.h"
+#include "linux-tdep.h"
 #include "solib-svr4.h"
 #include "symtab.h"
 
@@ -422,6 +423,9 @@ m32r_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
   /* Enable TLS support.  */
   set_gdbarch_fetch_tls_load_module_address (gdbarch,
                                              svr4_fetch_objfile_link_map);
+
+  set_gdbarch_convert_from_func_ptr_addr (gdbarch,
+					  linux_convert_from_func_ptr_addr);
 }
 
 /* Provide a prototype to silence -Wmissing-prototypes.  */
diff --git a/gdb/microblaze-linux-tdep.c b/gdb/microblaze-linux-tdep.c
index a691b62..d679516 100644
--- a/gdb/microblaze-linux-tdep.c
+++ b/gdb/microblaze-linux-tdep.c
@@ -35,6 +35,7 @@
 #include "trad-frame.h"
 #include "frame-unwind.h"
 #include "tramp-frame.h"
+#include "linux-tdep.h"
 
 
 static int
@@ -133,6 +134,9 @@ microblaze_linux_init_abi (struct gdbarch_info info,
   /* Trampolines.  */
   tramp_frame_prepend_unwinder (gdbarch,
 				&microblaze_linux_sighandler_tramp_frame);
+
+  set_gdbarch_convert_from_func_ptr_addr (gdbarch,
+					  linux_convert_from_func_ptr_addr);
 }
 
 void
diff --git a/gdb/minsyms.c b/gdb/minsyms.c
index 287f9de..1fe0fbe 100644
--- a/gdb/minsyms.c
+++ b/gdb/minsyms.c
@@ -331,8 +331,9 @@ lookup_minimal_symbol_text (const char *name, struct objfile *objf)
 	       msymbol = msymbol->hash_next)
 	    {
 	      if (strcmp (SYMBOL_LINKAGE_NAME (msymbol), name) == 0 &&
-		  (MSYMBOL_TYPE (msymbol) == mst_text ||
-		   MSYMBOL_TYPE (msymbol) == mst_file_text))
+		  (MSYMBOL_TYPE (msymbol) == mst_text
+		   || MSYMBOL_TYPE (msymbol) == mst_text_gnu_ifunc
+		   || MSYMBOL_TYPE (msymbol) == mst_file_text))
 		{
 		  switch (MSYMBOL_TYPE (msymbol))
 		    {
@@ -694,6 +695,16 @@ lookup_minimal_symbol_by_pc (CORE_ADDR pc)
   return lookup_minimal_symbol_by_pc_section (pc, NULL);


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


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

end of thread, other threads:[~2010-02-03  5:17 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-02-03  5:17 [SCM] archer-jankratochvil-fedora13: Merge remote branch 'origin/archer-jankratochvil-ifunc' into archer-jankratochvil-fedora13 jkratoch
  -- strict thread matches above, loose matches on Subject: below --
2010-02-01  0:27 jkratoch
2010-01-28 11:51 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).