* config/mips/tm-irix5.h (IN_SIGTRAMP): Redefine for Irix 5,
authorPeter Schauer <Peter.Schauer@mytum.de>
Sun, 7 Aug 1994 13:33:45 +0000 (13:33 +0000)
committerPeter Schauer <Peter.Schauer@mytum.de>
Sun, 7 Aug 1994 13:33:45 +0000 (13:33 +0000)
Irix 5 has a standard _sigtramp signal handler.
* irix5-nat.c (solib_add):  Get rid of sigtramp_address handling,
it is not needed for a standard _sigtramp signal handler.
Add shared library sections to the section table of the target
before adding the symbols.
* mips-tdep.c (mips_skip_prologue):  Do not skip load immediate
instructions that do not prepare a stack adjustment.
* regex.c (SIGN_EXTEND_CHAR):  Update to emacs-19.25 definition,
which does the right thing on machines where `char' is unsigned.

gdb/ChangeLog
gdb/irix5-nat.c
gdb/regex.c

index 17841e8..3fd8305 100644 (file)
@@ -1,3 +1,16 @@
+Sat Aug  6 22:27:30 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
+
+       * config/mips/tm-irix5.h (IN_SIGTRAMP):  Redefine for Irix 5,
+       Irix 5 has a standard _sigtramp signal handler.
+       * irix5-nat.c (solib_add):  Get rid of sigtramp_address handling,
+       it is not needed for a standard _sigtramp signal handler.
+       Add shared library sections to the section table of the target
+       before adding the symbols.
+       * mips-tdep.c (mips_skip_prologue):  Do not skip load immediate
+       instructions that do not prepare a stack adjustment.
+       * regex.c (SIGN_EXTEND_CHAR):  Update to emacs-19.25 definition,
+       which does the right thing on machines where `char' is unsigned.
+
 Fri Aug  5 17:50:59 1994  Stu Grossman  (grossman@cygnus.com)
 
        * remote.c (remote_open):  Move setting of inferior_pid prior to
index 590427e..74004d4 100644 (file)
@@ -217,8 +217,6 @@ static char *bkpt_names[] = {
 
 char shadow_contents[BREAKPOINT_MAX];  /* Stash old bkpt addr contents */
 
-extern CORE_ADDR sigtramp_address, sigtramp_end;
-
 struct so_list {
   struct so_list *next;                        /* next structure in linked list */
   struct obj_list ll;
@@ -615,37 +613,10 @@ solib_add (arg_string, from_tty, target)
       error ("Invalid regexp: %s", re_err);
     }
   
-  /* Getting new symbols may change our opinion about what is
-     frameless.  */
-  reinit_frame_cache ();
-  /* Not to mention where _sigtramp is.  */
-  sigtramp_address = 0;
-  
-  while ((so = find_solib (so)) != NULL)
-    {
-      if (so -> lm.o_path[0] && re_exec (so -> lm.o_path))
-       {
-         so -> from_tty = from_tty;
-         if (so -> symbols_loaded)
-           {
-             if (from_tty)
-               {
-                 printf_unfiltered ("Symbols already loaded for %s\n", so -> lm.o_path);
-               }
-           }
-         else if (catch_errors
-                  (symbol_add_stub, (char *) so,
-                   "Error while reading shared library symbols:\n",
-                   RETURN_MASK_ALL))
-           {
-             so_last = so;
-             so -> symbols_loaded = 1;
-           }
-       }
-    }
-  
-  /* Now add the shared library sections to the section table of the
-     specified target, if any.  */
+  /* Add the shared library sections to the section table of the
+     specified target, if any. We have to do this before reading the
+     symbol files as symbol_file_add calls reinit_frame_cache and
+     creating a new frame might access memory in the shared library.  */
   if (target)
     {
       /* Count how many new section_table entries there are.  */
@@ -691,6 +662,30 @@ solib_add (arg_string, from_tty, target)
            }
        }
     }
+  
+  /* Now add the symbol files.  */
+  while ((so = find_solib (so)) != NULL)
+    {
+      if (so -> lm.o_path[0] && re_exec (so -> lm.o_path))
+       {
+         so -> from_tty = from_tty;
+         if (so -> symbols_loaded)
+           {
+             if (from_tty)
+               {
+                 printf_unfiltered ("Symbols already loaded for %s\n", so -> lm.o_path);
+               }
+           }
+         else if (catch_errors
+                  (symbol_add_stub, (char *) so,
+                   "Error while reading shared library symbols:\n",
+                   RETURN_MASK_ALL))
+           {
+             so_last = so;
+             so -> symbols_loaded = 1;
+           }
+       }
+    }
 }
 
 /*
index 9b6dc5b..3f30284 100644 (file)
@@ -93,8 +93,16 @@ init_syntax_once ()
 
 #define BYTEWIDTH 8
 
-#ifndef SIGN_EXTEND_CHAR
-#define SIGN_EXTEND_CHAR(x) (x)
+/* We remove any previous definition of `SIGN_EXTEND_CHAR',
+   since ours (we hope) works properly with all combinations of
+   machines, compilers, `char' and `unsigned char' argument types.
+   (Per Bothner suggested the basic approach.)  */
+#undef SIGN_EXTEND_CHAR
+#if __STDC__
+#define SIGN_EXTEND_CHAR(c) ((signed char) (c))
+#else  /* not __STDC__ */
+/* As in Harbison and Steele.  */
+#define SIGN_EXTEND_CHAR(c) ((((unsigned char) (c)) ^ 128) - 128)
 #endif
 \f
 static int obscure_syntax = 0;