* paread.c (read_unwind_info)
authorJeff Law <law@redhat.com>
Sun, 30 Jan 1994 07:28:03 +0000 (07:28 +0000)
committerJeff Law <law@redhat.com>
Sun, 30 Jan 1994 07:28:03 +0000 (07:28 +0000)
        * paread.c (pa_symtab_read): Update the "check_strange_names"
        filter to match GCC's current output.  Filter out section symbols
        (which the HP linker sometimes puts in the wrong place).

gdb/ChangeLog
gdb/paread.c

index b885102e49bf8ea60d7e527735c5948e338d0257..fffe0ad5e10b2b8e069ef8baea326d3da660c7bf 100644 (file)
@@ -1,3 +1,11 @@
+Sat Jan 29 23:25:57 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+       * paread.c (read_unwind_info): Fix typo.
+
+       * paread.c (pa_symtab_read): Update the "check_strange_names"
+       filter to match GCC's current output.  Filter out section symbols
+       (which the HP linker sometimes puts in the wrong place).
+
 Sat Jan 29 07:44:59 1994  Jim Kingdon  (kingdon@deneb.cygnus.com)
 
        * serial.h (SERIAL_SET_TTY_STATE): Comment return value.
index 3c4755d62d42ac1ba9eb28b6080f761684157826..1afe3b5f7af61807caf78b1b0a0fa76f1d16eff2 100644 (file)
@@ -190,18 +190,18 @@ pa_symtab_read (abfd, addr, objfile)
 #endif
 
            check_strange_names:
-             /* GAS leaves labels in .o files after assembling.  At
-                least labels starting with "LS$", "LBB$", "LBE$",
-                "LC$", and "L$" can happen.  This should be fixed in
-                the assembler and/or compiler, to save space in the
-                executable (and because having GDB make gross
-                distinctions based on the name is kind of ugly), but
-                until then, just ignore them.  ("L$" at least, has something
-                to do with getting relocation correct, so that one might
-                be hard to fix).  */
-             if (*symname == 'L'
-                 && (symname[1] == '$' || symname[2] == '$' 
-                     || symname[3] == '$'))
+             /* Utah GCC 2.5, FSF GCC 2.6 and later generate correct local
+                label prefixes for stabs, constant data, etc.  So we need
+                only filter out L$ symbols which are left in due to
+                limitations in how GAS generates SOM relocations.
+
+                When linking in the HPUX C-library the HP linker has
+                the nasty habit of placing section symbols from the literal
+                subspaces in the middle of the program's text.  Filter
+                those out as best we can.  Check for first and last character
+                being '$'.  */
+             if ((symname[0] == 'L' && symname[1] == '$')
+                 || (symname[0] == '$' && symname[strlen(symname) - 1] == '$'))
                continue;
              break;
 
@@ -314,7 +314,7 @@ read_unwind_info (objfile)
 
   /* Allocate memory for the unwind table.  */
   ui->table = obstack_alloc (&objfile->psymbol_obstack, total_size);
-  ui->last = total_entries + 1;
+  ui->last = total_entries - 1;
 
   /* We will read the unwind entries into temporary memory, then
      fill in the actual unwind table.  */