Remove obsolete gdbarch_static_transform_name

Message ID ydd5zbfo8j5.fsf_-_@CeBiTec.Uni-Bielefeld.DE
State New
Headers show
Series
  • Remove obsolete gdbarch_static_transform_name
Related show

Commit Message

Rainer Orth June 25, 2020, 8:26 a.m.
Hi Simon,

>>> While those patches only/mostly affect Solaris-specific code, I have

>>> some questions:

>>> 

>>> * Two settings above (static_transform_name,

>>>   sofun_address_maybe_missing) only apply to quirks of stabs.

>>> 

>>>   The first is completely Solaris-specific (or rather specific to the

>>>   Studio compilers) and I didn't do any real testing here.  Studio cc

>>>   has deprecated stabs support in the 12.4 release back in 2015, gcc has

>>>   defaulted to DWARF-2 on Solaris 7+ since 2004, so maybe the whole

>>>   static_transform_name code can go?

>>

>> I would be completely fine with it.  The Solaris port pretty much depends on

>> the time you have to give, so if you don't have time to deal with ancient

>> stuff,

>> it's fine to drop support for it.

>

> I guess I'll go for it, time permitting: while it doesn't create a

> burden, it's just dead code these days.


here's the patch: tested on sparcv9-sun-solaris2.11 and
x86_64-pc-linux-gnu with --enable-targets=all (which promptly caught an
error in xcoffread.c).

Ok for master?

	Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University


2020-06-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* sol2-tdep.c (sol2_static_transform_name): Remove.
	(sol2_init_abi): Don't register it.
	* gdbarch.sh (static_transform_name): Remove.
	* gdbarch.c, gdbarch.h: Regenerate.

	* dbxread.c (read_dbx_symtab) <'S'>: Remove call to
	gdbarch_static_transform_name.
	* mdebugread.c (parse_partial_symbols) <'S'>: Likewise.
	* stabsread.c (define_symbol): Remove SunPRO etc. static variable
	encoding.
	(define_symbol) <'S'>: Remove gdbarch_static_transform_name
	handling.
	<'V'>: Likewise.
	* xcoffread.c (scan_xcoff_symtab): Remove gdbarch.
	<'S'>: Remove call to gdbarch_static_transform_name.

Comments

Kevin Buettner via Gdb-patches June 25, 2020, 9:18 a.m. | #1
On 6/25/20 9:26 AM, Rainer Orth wrote:
>  	case 'X':

> -	  /* SunPRO (3.0 at least) static variable encoding.  */

> -	  if (gdbarch_static_transform_name_p (gdbarch))

> -	    goto normal;

>  	  /* fall through */

>  


If you're leaving the 

  case 'X':

then I think you should leave a comment in place about that
is about.

But I'd just remove that case X line, since the fallthrough
is to the default case anyway.

Thanks,
Pedro Alves
Rainer Orth June 25, 2020, 12:07 p.m. | #2
Hi Pedro,

> On 6/25/20 9:26 AM, Rainer Orth wrote:

>>  	case 'X':

>> -	  /* SunPRO (3.0 at least) static variable encoding.  */

>> -	  if (gdbarch_static_transform_name_p (gdbarch))

>> -	    goto normal;

>>  	  /* fall through */

>>  

>

> If you're leaving the 

>

>   case 'X':

>

> then I think you should leave a comment in place about that

> is about.


I thought about that, but I strongly suspect that the comment only
applies to the gdbarch_static_transform_name_p call that is gone now,
not the case as a whole.  I meant to check "Stabs Interface" included
with the Studio compilers (READMEs/stabs.pdf, a quite extensive 170-page
document), but forgot.

> But I'd just remove that case X line, since the fallthrough

> is to the default case anyway.


Right, that's certainly clearer.

Here's the revised version.  Ok now?

Thanks.
        Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University


2020-06-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	gdb:
	* sol2-tdep.c (sol2_static_transform_name): Remove.
	(sol2_init_abi): Don't register it.
	* gdbarch.sh (static_transform_name): Remove.
	* gdbarch.c, gdbarch.h: Regenerate.

	* dbxread.c (read_dbx_symtab) <'S'>: Remove call to
	gdbarch_static_transform_name.
	* mdebugread.c (parse_partial_symbols) <'S'>: Likewise.
	* stabsread.c (define_symbol) <'X'>: Remove.
	(define_symbol) <'S'>: Remove gdbarch_static_transform_name
	handling.
	<'V'>: Likewise.
	* xcoffread.c (scan_xcoff_symtab): Remove gdbarch.
	<'S'>: Remove call to gdbarch_static_transform_name.
# HG changeset patch
# Parent  cc44512d0e8fabbf4adab517c02f762a26156bd5
Remove obsolete gdbarch_static_transform_name

diff --git a/gdb/dbxread.c b/gdb/dbxread.c
--- a/gdb/dbxread.c
+++ b/gdb/dbxread.c
@@ -1460,9 +1460,6 @@ read_dbx_symtab (minimal_symbol_reader &
 	  switch (p[1])
 	    {
 	    case 'S':
-	      if (gdbarch_static_transform_name_p (gdbarch))
-		gdbarch_static_transform_name (gdbarch, namestring);
-
 	      add_psymbol_to_list (gdb::string_view (sym_name, sym_len), true,
 				   VAR_DOMAIN, LOC_STATIC,
 				   data_sect_index,
diff --git a/gdb/gdbarch.c b/gdb/gdbarch.c
--- a/gdb/gdbarch.c
+++ b/gdb/gdbarch.c
@@ -292,7 +292,6 @@ struct gdbarch
   gdbarch_relocate_instruction_ftype *relocate_instruction;
   gdbarch_overlay_update_ftype *overlay_update;
   gdbarch_core_read_description_ftype *core_read_description;
-  gdbarch_static_transform_name_ftype *static_transform_name;
   int sofun_address_maybe_missing;
   gdbarch_process_record_ftype *process_record;
   gdbarch_process_record_signal_ftype *process_record_signal;
@@ -658,7 +657,6 @@ verify_gdbarch (struct gdbarch *gdbarch)
   /* Skip verify of relocate_instruction, has predicate.  */
   /* Skip verify of overlay_update, has predicate.  */
   /* Skip verify of core_read_description, has predicate.  */
-  /* Skip verify of static_transform_name, has predicate.  */
   /* Skip verify of sofun_address_maybe_missing, invalid_p == 0 */
   /* Skip verify of process_record, has predicate.  */
   /* Skip verify of process_record_signal, has predicate.  */
@@ -1437,12 +1435,6 @@ gdbarch_dump (struct gdbarch *gdbarch, s
                       "gdbarch_dump: stap_register_suffixes = %s\n",
                       pstring_list (gdbarch->stap_register_suffixes));
   fprintf_unfiltered (file,
-                      "gdbarch_dump: gdbarch_static_transform_name_p() = %d\n",
-                      gdbarch_static_transform_name_p (gdbarch));
-  fprintf_unfiltered (file,
-                      "gdbarch_dump: static_transform_name = <%s>\n",
-                      host_address_to_string (gdbarch->static_transform_name));
-  fprintf_unfiltered (file,
                       "gdbarch_dump: sw_breakpoint_from_kind = <%s>\n",
                       host_address_to_string (gdbarch->sw_breakpoint_from_kind));
   fprintf_unfiltered (file,
@@ -4076,30 +4068,6 @@ set_gdbarch_core_read_description (struc
 }
 
 int
-gdbarch_static_transform_name_p (struct gdbarch *gdbarch)
-{
-  gdb_assert (gdbarch != NULL);
-  return gdbarch->static_transform_name != NULL;
-}
-
-const char *
-gdbarch_static_transform_name (struct gdbarch *gdbarch, const char *name)
-{
-  gdb_assert (gdbarch != NULL);
-  gdb_assert (gdbarch->static_transform_name != NULL);
-  if (gdbarch_debug >= 2)
-    fprintf_unfiltered (gdb_stdlog, "gdbarch_static_transform_name called\n");
-  return gdbarch->static_transform_name (name);
-}
-
-void
-set_gdbarch_static_transform_name (struct gdbarch *gdbarch,
-                                   gdbarch_static_transform_name_ftype static_transform_name)
-{
-  gdbarch->static_transform_name = static_transform_name;
-}
-
-int
 gdbarch_sofun_address_maybe_missing (struct gdbarch *gdbarch)
 {
   gdb_assert (gdbarch != NULL);
diff --git a/gdb/gdbarch.h b/gdb/gdbarch.h
--- a/gdb/gdbarch.h
+++ b/gdb/gdbarch.h
@@ -1112,14 +1112,6 @@ typedef const struct target_desc * (gdba
 extern const struct target_desc * gdbarch_core_read_description (struct gdbarch *gdbarch, struct target_ops *target, bfd *abfd);
 extern void set_gdbarch_core_read_description (struct gdbarch *gdbarch, gdbarch_core_read_description_ftype *core_read_description);
 
-/* Handle special encoding of static variables in stabs debug info. */
-
-extern int gdbarch_static_transform_name_p (struct gdbarch *gdbarch);
-
-typedef const char * (gdbarch_static_transform_name_ftype) (const char *name);
-extern const char * gdbarch_static_transform_name (struct gdbarch *gdbarch, const char *name);
-extern void set_gdbarch_static_transform_name (struct gdbarch *gdbarch, gdbarch_static_transform_name_ftype *static_transform_name);
-
 /* Set if the address in N_SO or N_FUN stabs may be zero. */
 
 extern int gdbarch_sofun_address_maybe_missing (struct gdbarch *gdbarch);
diff --git a/gdb/gdbarch.sh b/gdb/gdbarch.sh
--- a/gdb/gdbarch.sh
+++ b/gdb/gdbarch.sh
@@ -842,8 +842,6 @@ F;void;overlay_update;struct obj_section
 
 M;const struct target_desc *;core_read_description;struct target_ops *target, bfd *abfd;target, abfd
 
-# Handle special encoding of static variables in stabs debug info.
-F;const char *;static_transform_name;const char *name;name
 # Set if the address in N_SO or N_FUN stabs may be zero.
 v;int;sofun_address_maybe_missing;;;0;0;;0
 
diff --git a/gdb/mdebugread.c b/gdb/mdebugread.c
--- a/gdb/mdebugread.c
+++ b/gdb/mdebugread.c
@@ -3029,10 +3029,6 @@ parse_partial_symbols (minimal_symbol_re
 		    switch (p[1])
 		      {
 		      case 'S':
-			if (gdbarch_static_transform_name_p (gdbarch))
-			  namestring = gdbarch_static_transform_name
-					 (gdbarch, namestring);
-
 			add_psymbol_to_list (gdb::string_view (namestring,
 							       p - namestring),
 					     true, VAR_DOMAIN, LOC_STATIC,
diff --git a/gdb/sol2-tdep.c b/gdb/sol2-tdep.c
--- a/gdb/sol2-tdep.c
+++ b/gdb/sol2-tdep.c
@@ -61,52 +61,6 @@ sol2_sigtramp_p (struct frame_info *this
   return sol2_pc_in_sigtramp (pc, name);
 }
 
-/* Unglobalize NAME.  */
-
-static const char *
-sol2_static_transform_name (const char *name)
-{
-  /* The Sun compilers (Sun ONE Studio, Forte Developer, Sun WorkShop,
-     SunPRO) convert file static variables into global values, a
-     process known as globalization.  In order to do this, the
-     compiler will create a unique prefix and prepend it to each file
-     static variable.  For static variables within a function, this
-     globalization prefix is followed by the function name (nested
-     static variables within a function are supposed to generate a
-     warning message, and are left alone).  The procedure is
-     documented in the Stabs Interface Manual, which is distributed
-     with the compilers, although version 4.0 of the manual seems to
-     be incorrect in some places, at least for SPARC.  The
-     globalization prefix is encoded into an N_OPT stab, with the form
-     "G=<prefix>".  The globalization prefix always seems to start
-     with a dollar sign '$' (sparc) resp. a dot '.' (x86); a dot '.'
-     is used as a separator.  So we  simply strip everything up until
-     the last dot.  */
-  int prefix;
-  
-  switch (gdbarch_bfd_arch_info (target_gdbarch ())->arch)
-    {
-    case bfd_arch_i386:
-      prefix = '.';
-      break;
-    case bfd_arch_sparc:
-      prefix = '$';
-      break;
-    default:
-      internal_error (__FILE__, __LINE__, "Unexpected arch");
-      break;
-    }
-
-  if (name[0] == prefix)
-    {
-      const char *p = strrchr (name, '.');
-      if (p)
-        return p + 1;
-    }
-
-  return name;
-}
-
 static CORE_ADDR
 sol2_skip_solib_resolver (struct gdbarch *gdbarch, CORE_ADDR pc)
 {
@@ -155,10 +109,6 @@ sol2_init_abi (struct gdbarch_info info,
      SunPRO 3.0, the compiler does this for N_FUN stabs too.  */
   set_gdbarch_sofun_address_maybe_missing (gdbarch, 1);
 
-  /* The Sun compilers also do "globalization"; see the comment in
-     sol2_static_transform_name for more information.  */
-  set_gdbarch_static_transform_name (gdbarch, sol2_static_transform_name);
-
   /* Solaris uses SVR4-style shared libraries.  */
   set_gdbarch_skip_solib_resolver (gdbarch, sol2_skip_solib_resolver);
 
diff --git a/gdb/stabsread.c b/gdb/stabsread.c
--- a/gdb/stabsread.c
+++ b/gdb/stabsread.c
@@ -723,12 +723,6 @@ define_symbol (CORE_ADDR valu, const cha
 	  /* This was an anonymous type that was never fixed up.  */
 	  goto normal;
 
-	case 'X':
-	  /* SunPRO (3.0 at least) static variable encoding.  */
-	  if (gdbarch_static_transform_name_p (gdbarch))
-	    goto normal;
-	  /* fall through */
-
 	default:
 	  complaint (_("Unknown C++ symbol name `%s'"),
 		     string);
@@ -1186,23 +1180,6 @@ define_symbol (CORE_ADDR valu, const cha
       SYMBOL_TYPE (sym) = read_type (&p, objfile);
       SYMBOL_ACLASS_INDEX (sym) = LOC_STATIC;
       SET_SYMBOL_VALUE_ADDRESS (sym, valu);
-      if (gdbarch_static_transform_name_p (gdbarch)
-	  && gdbarch_static_transform_name (gdbarch, sym->linkage_name ())
-	     != sym->linkage_name ())
-	{
-	  struct bound_minimal_symbol msym;
-
-	  msym = lookup_minimal_symbol (sym->linkage_name (), NULL, objfile);
-	  if (msym.minsym != NULL)
-	    {
-	      const char *new_name = gdbarch_static_transform_name
-		(gdbarch, sym->linkage_name ());
-
-	      sym->set_linkage_name (new_name);
-	      SET_SYMBOL_VALUE_ADDRESS (sym,
-					BMSYMBOL_VALUE_ADDRESS (msym));
-	    }
-	}
       SYMBOL_DOMAIN (sym) = VAR_DOMAIN;
       add_symbol_to_list (sym, get_file_symbols ());
       break;
@@ -1367,24 +1344,8 @@ define_symbol (CORE_ADDR valu, const cha
       SYMBOL_TYPE (sym) = read_type (&p, objfile);
       SYMBOL_ACLASS_INDEX (sym) = LOC_STATIC;
       SET_SYMBOL_VALUE_ADDRESS (sym, valu);
-      if (gdbarch_static_transform_name_p (gdbarch)
-	  && gdbarch_static_transform_name (gdbarch, sym->linkage_name ())
-	     != sym->linkage_name ())
-	{
-	  struct bound_minimal_symbol msym;
-
-	  msym = lookup_minimal_symbol (sym->linkage_name (), NULL, objfile);
-	  if (msym.minsym != NULL)
-	    {
-	      const char *new_name = gdbarch_static_transform_name
-		(gdbarch, sym->linkage_name ());
-
-	      sym->set_linkage_name (new_name);
-	      SET_SYMBOL_VALUE_ADDRESS (sym, BMSYMBOL_VALUE_ADDRESS (msym));
-	    }
-	}
       SYMBOL_DOMAIN (sym) = VAR_DOMAIN;
-	add_symbol_to_list (sym, get_local_symbols ());
+      add_symbol_to_list (sym, get_local_symbols ());
       break;
 
     case 'v':
diff --git a/gdb/xcoffread.c b/gdb/xcoffread.c
--- a/gdb/xcoffread.c
+++ b/gdb/xcoffread.c
@@ -2114,7 +2114,6 @@ static void
 scan_xcoff_symtab (minimal_symbol_reader &reader,
 		   struct objfile *objfile)
 {
-  struct gdbarch *gdbarch = objfile->arch ();
   CORE_ADDR toc_offset = 0;	/* toc offset value in data section.  */
   const char *filestring = NULL;
 
@@ -2577,10 +2576,6 @@ scan_xcoff_symtab (minimal_symbol_reader
 	    switch (p[1])
 	      {
 	      case 'S':
-		if (gdbarch_static_transform_name_p (gdbarch))
-		  namestring = gdbarch_static_transform_name
-				 (gdbarch, namestring);
-
 		add_psymbol_to_list (gdb::string_view (namestring,
 						       p - namestring),
 				     true, VAR_DOMAIN, LOC_STATIC,
Kevin Buettner via Gdb-patches June 25, 2020, 3:20 p.m. | #3
On 6/25/20 1:07 PM, Rainer Orth wrote:

>> But I'd just remove that case X line, since the fallthrough

>> is to the default case anyway.

> 

> Right, that's certainly clearer.

> 

> Here's the revised version.  Ok now?


Sure, it's fine with me.

Thanks,
Pedro Alves

Patch

# HG changeset patch
# Parent  cc44512d0e8fabbf4adab517c02f762a26156bd5
Remove obsolete gdbarch_static_transform_name

diff --git a/gdb/dbxread.c b/gdb/dbxread.c
--- a/gdb/dbxread.c
+++ b/gdb/dbxread.c
@@ -1460,9 +1460,6 @@  read_dbx_symtab (minimal_symbol_reader &
 	  switch (p[1])
 	    {
 	    case 'S':
-	      if (gdbarch_static_transform_name_p (gdbarch))
-		gdbarch_static_transform_name (gdbarch, namestring);
-
 	      add_psymbol_to_list (gdb::string_view (sym_name, sym_len), true,
 				   VAR_DOMAIN, LOC_STATIC,
 				   data_sect_index,
diff --git a/gdb/gdbarch.c b/gdb/gdbarch.c
--- a/gdb/gdbarch.c
+++ b/gdb/gdbarch.c
@@ -292,7 +292,6 @@  struct gdbarch
   gdbarch_relocate_instruction_ftype *relocate_instruction;
   gdbarch_overlay_update_ftype *overlay_update;
   gdbarch_core_read_description_ftype *core_read_description;
-  gdbarch_static_transform_name_ftype *static_transform_name;
   int sofun_address_maybe_missing;
   gdbarch_process_record_ftype *process_record;
   gdbarch_process_record_signal_ftype *process_record_signal;
@@ -658,7 +657,6 @@  verify_gdbarch (struct gdbarch *gdbarch)
   /* Skip verify of relocate_instruction, has predicate.  */
   /* Skip verify of overlay_update, has predicate.  */
   /* Skip verify of core_read_description, has predicate.  */
-  /* Skip verify of static_transform_name, has predicate.  */
   /* Skip verify of sofun_address_maybe_missing, invalid_p == 0 */
   /* Skip verify of process_record, has predicate.  */
   /* Skip verify of process_record_signal, has predicate.  */
@@ -1437,12 +1435,6 @@  gdbarch_dump (struct gdbarch *gdbarch, s
                       "gdbarch_dump: stap_register_suffixes = %s\n",
                       pstring_list (gdbarch->stap_register_suffixes));
   fprintf_unfiltered (file,
-                      "gdbarch_dump: gdbarch_static_transform_name_p() = %d\n",
-                      gdbarch_static_transform_name_p (gdbarch));
-  fprintf_unfiltered (file,
-                      "gdbarch_dump: static_transform_name = <%s>\n",
-                      host_address_to_string (gdbarch->static_transform_name));
-  fprintf_unfiltered (file,
                       "gdbarch_dump: sw_breakpoint_from_kind = <%s>\n",
                       host_address_to_string (gdbarch->sw_breakpoint_from_kind));
   fprintf_unfiltered (file,
@@ -4076,30 +4068,6 @@  set_gdbarch_core_read_description (struc
 }
 
 int
-gdbarch_static_transform_name_p (struct gdbarch *gdbarch)
-{
-  gdb_assert (gdbarch != NULL);
-  return gdbarch->static_transform_name != NULL;
-}
-
-const char *
-gdbarch_static_transform_name (struct gdbarch *gdbarch, const char *name)
-{
-  gdb_assert (gdbarch != NULL);
-  gdb_assert (gdbarch->static_transform_name != NULL);
-  if (gdbarch_debug >= 2)
-    fprintf_unfiltered (gdb_stdlog, "gdbarch_static_transform_name called\n");
-  return gdbarch->static_transform_name (name);
-}
-
-void
-set_gdbarch_static_transform_name (struct gdbarch *gdbarch,
-                                   gdbarch_static_transform_name_ftype static_transform_name)
-{
-  gdbarch->static_transform_name = static_transform_name;
-}
-
-int
 gdbarch_sofun_address_maybe_missing (struct gdbarch *gdbarch)
 {
   gdb_assert (gdbarch != NULL);
diff --git a/gdb/gdbarch.h b/gdb/gdbarch.h
--- a/gdb/gdbarch.h
+++ b/gdb/gdbarch.h
@@ -1112,14 +1112,6 @@  typedef const struct target_desc * (gdba
 extern const struct target_desc * gdbarch_core_read_description (struct gdbarch *gdbarch, struct target_ops *target, bfd *abfd);
 extern void set_gdbarch_core_read_description (struct gdbarch *gdbarch, gdbarch_core_read_description_ftype *core_read_description);
 
-/* Handle special encoding of static variables in stabs debug info. */
-
-extern int gdbarch_static_transform_name_p (struct gdbarch *gdbarch);
-
-typedef const char * (gdbarch_static_transform_name_ftype) (const char *name);
-extern const char * gdbarch_static_transform_name (struct gdbarch *gdbarch, const char *name);
-extern void set_gdbarch_static_transform_name (struct gdbarch *gdbarch, gdbarch_static_transform_name_ftype *static_transform_name);
-
 /* Set if the address in N_SO or N_FUN stabs may be zero. */
 
 extern int gdbarch_sofun_address_maybe_missing (struct gdbarch *gdbarch);
diff --git a/gdb/gdbarch.sh b/gdb/gdbarch.sh
--- a/gdb/gdbarch.sh
+++ b/gdb/gdbarch.sh
@@ -842,8 +842,6 @@  F;void;overlay_update;struct obj_section
 
 M;const struct target_desc *;core_read_description;struct target_ops *target, bfd *abfd;target, abfd
 
-# Handle special encoding of static variables in stabs debug info.
-F;const char *;static_transform_name;const char *name;name
 # Set if the address in N_SO or N_FUN stabs may be zero.
 v;int;sofun_address_maybe_missing;;;0;0;;0
 
diff --git a/gdb/mdebugread.c b/gdb/mdebugread.c
--- a/gdb/mdebugread.c
+++ b/gdb/mdebugread.c
@@ -3029,10 +3029,6 @@  parse_partial_symbols (minimal_symbol_re
 		    switch (p[1])
 		      {
 		      case 'S':
-			if (gdbarch_static_transform_name_p (gdbarch))
-			  namestring = gdbarch_static_transform_name
-					 (gdbarch, namestring);
-
 			add_psymbol_to_list (gdb::string_view (namestring,
 							       p - namestring),
 					     true, VAR_DOMAIN, LOC_STATIC,
diff --git a/gdb/sol2-tdep.c b/gdb/sol2-tdep.c
--- a/gdb/sol2-tdep.c
+++ b/gdb/sol2-tdep.c
@@ -61,52 +61,6 @@  sol2_sigtramp_p (struct frame_info *this
   return sol2_pc_in_sigtramp (pc, name);
 }
 
-/* Unglobalize NAME.  */
-
-static const char *
-sol2_static_transform_name (const char *name)
-{
-  /* The Sun compilers (Sun ONE Studio, Forte Developer, Sun WorkShop,
-     SunPRO) convert file static variables into global values, a
-     process known as globalization.  In order to do this, the
-     compiler will create a unique prefix and prepend it to each file
-     static variable.  For static variables within a function, this
-     globalization prefix is followed by the function name (nested
-     static variables within a function are supposed to generate a
-     warning message, and are left alone).  The procedure is
-     documented in the Stabs Interface Manual, which is distributed
-     with the compilers, although version 4.0 of the manual seems to
-     be incorrect in some places, at least for SPARC.  The
-     globalization prefix is encoded into an N_OPT stab, with the form
-     "G=<prefix>".  The globalization prefix always seems to start
-     with a dollar sign '$' (sparc) resp. a dot '.' (x86); a dot '.'
-     is used as a separator.  So we  simply strip everything up until
-     the last dot.  */
-  int prefix;
-  
-  switch (gdbarch_bfd_arch_info (target_gdbarch ())->arch)
-    {
-    case bfd_arch_i386:
-      prefix = '.';
-      break;
-    case bfd_arch_sparc:
-      prefix = '$';
-      break;
-    default:
-      internal_error (__FILE__, __LINE__, "Unexpected arch");
-      break;
-    }
-
-  if (name[0] == prefix)
-    {
-      const char *p = strrchr (name, '.');
-      if (p)
-        return p + 1;
-    }
-
-  return name;
-}
-
 static CORE_ADDR
 sol2_skip_solib_resolver (struct gdbarch *gdbarch, CORE_ADDR pc)
 {
@@ -155,10 +109,6 @@  sol2_init_abi (struct gdbarch_info info,
      SunPRO 3.0, the compiler does this for N_FUN stabs too.  */
   set_gdbarch_sofun_address_maybe_missing (gdbarch, 1);
 
-  /* The Sun compilers also do "globalization"; see the comment in
-     sol2_static_transform_name for more information.  */
-  set_gdbarch_static_transform_name (gdbarch, sol2_static_transform_name);
-
   /* Solaris uses SVR4-style shared libraries.  */
   set_gdbarch_skip_solib_resolver (gdbarch, sol2_skip_solib_resolver);
 
diff --git a/gdb/stabsread.c b/gdb/stabsread.c
--- a/gdb/stabsread.c
+++ b/gdb/stabsread.c
@@ -724,9 +724,6 @@  define_symbol (CORE_ADDR valu, const cha
 	  goto normal;
 
 	case 'X':
-	  /* SunPRO (3.0 at least) static variable encoding.  */
-	  if (gdbarch_static_transform_name_p (gdbarch))
-	    goto normal;
 	  /* fall through */
 
 	default:
@@ -1186,23 +1183,6 @@  define_symbol (CORE_ADDR valu, const cha
       SYMBOL_TYPE (sym) = read_type (&p, objfile);
       SYMBOL_ACLASS_INDEX (sym) = LOC_STATIC;
       SET_SYMBOL_VALUE_ADDRESS (sym, valu);
-      if (gdbarch_static_transform_name_p (gdbarch)
-	  && gdbarch_static_transform_name (gdbarch, sym->linkage_name ())
-	     != sym->linkage_name ())
-	{
-	  struct bound_minimal_symbol msym;
-
-	  msym = lookup_minimal_symbol (sym->linkage_name (), NULL, objfile);
-	  if (msym.minsym != NULL)
-	    {
-	      const char *new_name = gdbarch_static_transform_name
-		(gdbarch, sym->linkage_name ());
-
-	      sym->set_linkage_name (new_name);
-	      SET_SYMBOL_VALUE_ADDRESS (sym,
-					BMSYMBOL_VALUE_ADDRESS (msym));
-	    }
-	}
       SYMBOL_DOMAIN (sym) = VAR_DOMAIN;
       add_symbol_to_list (sym, get_file_symbols ());
       break;
@@ -1367,24 +1347,8 @@  define_symbol (CORE_ADDR valu, const cha
       SYMBOL_TYPE (sym) = read_type (&p, objfile);
       SYMBOL_ACLASS_INDEX (sym) = LOC_STATIC;
       SET_SYMBOL_VALUE_ADDRESS (sym, valu);
-      if (gdbarch_static_transform_name_p (gdbarch)
-	  && gdbarch_static_transform_name (gdbarch, sym->linkage_name ())
-	     != sym->linkage_name ())
-	{
-	  struct bound_minimal_symbol msym;
-
-	  msym = lookup_minimal_symbol (sym->linkage_name (), NULL, objfile);
-	  if (msym.minsym != NULL)
-	    {
-	      const char *new_name = gdbarch_static_transform_name
-		(gdbarch, sym->linkage_name ());
-
-	      sym->set_linkage_name (new_name);
-	      SET_SYMBOL_VALUE_ADDRESS (sym, BMSYMBOL_VALUE_ADDRESS (msym));
-	    }
-	}
       SYMBOL_DOMAIN (sym) = VAR_DOMAIN;
-	add_symbol_to_list (sym, get_local_symbols ());
+      add_symbol_to_list (sym, get_local_symbols ());
       break;
 
     case 'v':
diff --git a/gdb/xcoffread.c b/gdb/xcoffread.c
--- a/gdb/xcoffread.c
+++ b/gdb/xcoffread.c
@@ -2114,7 +2114,6 @@  static void
 scan_xcoff_symtab (minimal_symbol_reader &reader,
 		   struct objfile *objfile)
 {
-  struct gdbarch *gdbarch = objfile->arch ();
   CORE_ADDR toc_offset = 0;	/* toc offset value in data section.  */
   const char *filestring = NULL;
 
@@ -2577,10 +2576,6 @@  scan_xcoff_symtab (minimal_symbol_reader
 	    switch (p[1])
 	      {
 	      case 'S':
-		if (gdbarch_static_transform_name_p (gdbarch))
-		  namestring = gdbarch_static_transform_name
-				 (gdbarch, namestring);
-
 		add_psymbol_to_list (gdb::string_view (namestring,
 						       p - namestring),
 				     true, VAR_DOMAIN, LOC_STATIC,