* alpha-mdebug-tdep.c: Include "gdb_string.h".
authorUlrich Weigand <uweigand@de.ibm.com>
Fri, 12 Oct 2007 16:13:20 +0000 (16:13 +0000)
committerUlrich Weigand <uweigand@de.ibm.com>
Fri, 12 Oct 2007 16:13:20 +0000 (16:13 +0000)
(find_proc_desc): Add fix-up code for setjmp procedure descriptor.
* mdebugread.c (parse_procedure): Remove setjmp fix-up code.
* Makefile.in (alpha-mdebug-tdep.o): Update dependencies.

* config/alpha/alpha.mt (DEPRECATED_TM_FILE): Remove.
* config/alpha/alpha-linux.mt (DEPRECATED_TM_FILE): Remove.
* config/alpha/alpha-osf1.mt (DEPRECATED_TM_FILE): Remove.
* config/alpha/fbsd.mt (DEPRECATED_TM_FILE): Remove.
* config/alpha/tm-alpha.h: Remove file.

gdb/ChangeLog
gdb/Makefile.in
gdb/alpha-mdebug-tdep.c
gdb/config/alpha/alpha-linux.mt
gdb/config/alpha/alpha-osf1.mt
gdb/config/alpha/alpha.mt
gdb/config/alpha/fbsd.mt
gdb/config/alpha/tm-alpha.h [deleted file]
gdb/mdebugread.c

index b7fdcd59774278530b95a54bd1d8a339a2af8cf2..ed2abe5992607ec5ce5601fc037ce801aa3bc464 100644 (file)
@@ -1,3 +1,16 @@
+2007-10-12  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * alpha-mdebug-tdep.c: Include "gdb_string.h".
+       (find_proc_desc): Add fix-up code for setjmp procedure descriptor.
+       * mdebugread.c (parse_procedure): Remove setjmp fix-up code.
+       * Makefile.in (alpha-mdebug-tdep.o): Update dependencies.
+
+       * config/alpha/alpha.mt (DEPRECATED_TM_FILE): Remove.
+       * config/alpha/alpha-linux.mt (DEPRECATED_TM_FILE): Remove.
+       * config/alpha/alpha-osf1.mt (DEPRECATED_TM_FILE): Remove.
+       * config/alpha/fbsd.mt (DEPRECATED_TM_FILE): Remove.
+       * config/alpha/tm-alpha.h: Remove file.
+
 2007-10-12  Ulrich Weigand  <uweigand@de.ibm.com>
 
        * breakpoint.c (breakpoint_sals_to_pc): Do not check for
index 30905587e80020c606418f856ca316cd00359083..5a51f4c6b4ac5c2cb897b0667f207bed8bde0dfb 100644 (file)
@@ -1735,7 +1735,8 @@ alpha-linux-tdep.o: alpha-linux-tdep.c $(defs_h) $(frame_h) $(gdb_assert_h) \
        $(regcache_h) $(alpha_tdep_h)
 alpha-mdebug-tdep.o: alpha-mdebug-tdep.c $(defs_h) $(frame_h) \
        $(frame_unwind_h) $(frame_base_h) $(symtab_h) $(gdbcore_h) \
-       $(block_h) $(gdb_assert_h) $(alpha_tdep_h) $(mdebugread_h)
+       $(block_h) $(gdb_assert_h) $(gdb_string_h) $(alpha_tdep_h) \
+       $(mdebugread_h)
 alpha-nat.o: alpha-nat.c $(defs_h) $(gdb_string_h) $(inferior_h) \
        $(gdbcore_h) $(target_h) $(regcache_h) $(alpha_tdep_h) $(gregset_h)
 alphanbsd-tdep.o: alphanbsd-tdep.c $(defs_h) $(frame_h) $(gdbcore_h) \
index ab2fb91abde94528e5d156b6cf9f01fee04b6f1d..9c82ad16eba30f7a1099138a3ac3d349fa80430a 100644 (file)
@@ -25,6 +25,7 @@
 #include "gdbcore.h"
 #include "block.h"
 #include "gdb_assert.h"
+#include "gdb_string.h"
 
 #include "alpha-tdep.h"
 #include "mdebugread.h"
@@ -95,11 +96,12 @@ find_proc_desc (CORE_ADDR pc)
   struct block *b = block_for_pc (pc);
   struct mdebug_extra_func_info *proc_desc = NULL;
   struct symbol *sym = NULL;
+  char *sh_name = NULL;
 
   if (b)
     {
       CORE_ADDR startaddr;
-      find_pc_partial_function (pc, NULL, &startaddr, NULL);
+      find_pc_partial_function (pc, &sh_name, &startaddr, NULL);
 
       if (startaddr > BLOCK_START (b))
        /* This is the "pathological" case referred to in a comment in
@@ -114,6 +116,16 @@ find_proc_desc (CORE_ADDR pc)
     {
       proc_desc = (struct mdebug_extra_func_info *) SYMBOL_VALUE (sym);
 
+      /* Correct incorrect setjmp procedure descriptor from the library
+         to make backtrace through setjmp work.  */
+      if (proc_desc->pdr.pcreg == 0
+         && strcmp (sh_name, "setjmp") == 0)
+       {
+         proc_desc->pdr.pcreg = ALPHA_RA_REGNUM;
+         proc_desc->pdr.regmask = 0x80000000;
+         proc_desc->pdr.regoffset = -4;
+       }
+
       /* If we never found a PDR for this function in symbol reading,
         then examine prologues to find the information.  */
       if (proc_desc->pdr.framereg == -1)
index 3fbee72869081b88578f0f6d1fc0fc4433836a99..096c6c325c1f61c6d87b13ef536a9bf6280c2d9d 100644 (file)
@@ -1,4 +1,3 @@
 # Target: Little-endian Alpha
 TDEPFILES= alpha-tdep.o alpha-mdebug-tdep.o alpha-linux-tdep.o \
           solib.o solib-svr4.o solib-legacy.o
-DEPRECATED_TM_FILE= tm-alpha.h
index d8e227da6bf3f9d0c242eb36beadc49f2a042236..a1fe56dc7dfb6e3066a8241b41696858105f2741 100644 (file)
@@ -1,3 +1,2 @@
 # Target: Little-endian Alpha
 TDEPFILES= alpha-tdep.o alpha-osf1-tdep.o alpha-mdebug-tdep.o
-DEPRECATED_TM_FILE= tm-alpha.h
index 703f3fb5e0bf1089d47f304f1555ca212e2c5ee8..117f2128db9d8f520802d430715fb23cef7dc08d 100644 (file)
@@ -1,2 +1 @@
 TDEPFILES= alpha-tdep.o
-DEPRECATED_TM_FILE= tm-alpha.h
index 5b8a2723c349611812f7009e77d76319a058e72b..a1132b2e25cf315bbafb134b297cef2c3f656da4 100644 (file)
@@ -1,4 +1,3 @@
 # Target: FreeBSD/alpha
 TDEPFILES= alpha-tdep.o alpha-mdebug-tdep.o alphabsd-tdep.o alphafbsd-tdep.o \
        corelow.o solib.o solib-svr4.o
-DEPRECATED_TM_FILE= tm-alpha.h
diff --git a/gdb/config/alpha/tm-alpha.h b/gdb/config/alpha/tm-alpha.h
deleted file mode 100644 (file)
index d764e00..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Definitions to make GDB run on an Alpha box under OSF1.  This is
-   also used by the Alpha GNU/Linux target.
-
-   Copyright 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2002, 2004, 2007
-   Free Software Foundation, Inc.
-
-   This file is part of GDB.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
-
-#ifndef TM_ALPHA_H
-#define TM_ALPHA_H
-
-#define RA_REGNUM 26           /* XXXJRT needed by mdebugread.c */
-
-#endif /* TM_ALPHA_H */
index 897c596cfecda98907d512877def333c26088c0e..c9cc2600398c8382f614ff05ae48c8623653fbd6 100644 (file)
@@ -1942,21 +1942,6 @@ parse_procedure (PDR *pr, struct symtab *search_symtab,
          To work around these problems, we replace e->pdr.adr with
          the start address of the function.  */
       e->pdr.adr = BLOCK_START (b);
-
-      /* Correct incorrect setjmp procedure descriptor from the library
-         to make backtrace through setjmp work.  */
-      if (e->pdr.pcreg == 0
-         && strcmp (sh_name, "setjmp") == 0)
-       {
-         complaint (&symfile_complaints, _("fixing bad setjmp PDR from libc"));
-#ifdef RA_REGNUM
-         e->pdr.pcreg = RA_REGNUM;
-#else
-         e->pdr.pcreg = 0;
-#endif
-         e->pdr.regmask = 0x80000000;
-         e->pdr.regoffset = -4;
-       }
     }
 
   /* It would be reasonable that functions that have been compiled