This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[patch] get rid of some deprecated stuff in minsyms.c


This patch gets rid of the easy deprecated stuff in minsyms.c.  It
replaces all uses of DEPRECATED_SYMBOL_NAME with SYMBOL_LINKAGE_NAME
(not too surprising, minsyms are about linkage names) and replaces the
uses of DEPRECATED_SYMBOL_MATCHES_NAME in lookup_minimal_symbol_text
and lookup_minimal_symbol_solib_trampoline by strcmp on linkage
names.  The former won't change behavior at all; the latter
conceivably could, but it's correct because those functions already
explicitly state that their argument is supposed to be a linkage name,
and they only search on the linkage name hash table, not the demangled
name hash table.

What this doesn't change is the use of DEPRECATED_SYMBOL_MATCHES_NAME
in lookup_minimal_symbol: that's a much more delicate situation, which
should wait for a later RFA.

Tested on i686-pc-linux-gnu, GCC 3.1, DWARF 2.  I'm planning to commit
this as obvious on Monday unless somebody objects.

David Carlton
carlton at math dot stanford dot edu

2003-03-07  David Carlton  <carlton at math dot stanford dot edu>

	* minsyms.c (add_minsym_to_hash_table): Replace
	DEPRECATED_SYMBOL_NAME by SYMBOL_LINKAGE_NAME.
	(compare_minimal_symbols, compact_minimal_symbols)
	(install_minimal_symbols, find_solib_trampoline_target): Ditto.
	(lookup_minimal_symbol_text): Use strcmp on linkage names instead
	of DEPRECATED_SYMBOL_MATCHES_NAME.
	(lookup_minimal_symbol_solib_trampoline): Ditto.

Index: minsyms.c
===================================================================
RCS file: /cvs/src/src/gdb/minsyms.c,v
retrieving revision 1.28
diff -u -p -r1.28 minsyms.c
--- minsyms.c	5 Mar 2003 18:01:46 -0000	1.28
+++ minsyms.c	7 Mar 2003 22:31:08 -0000
@@ -113,7 +113,8 @@ add_minsym_to_hash_table (struct minimal
 {
   if (sym->hash_next == NULL)
     {
-      unsigned int hash = msymbol_hash (DEPRECATED_SYMBOL_NAME (sym)) % MINIMAL_SYMBOL_HASH_SIZE;
+      unsigned int hash
+	= msymbol_hash (SYMBOL_LINKAGE_NAME (sym)) % MINIMAL_SYMBOL_HASH_SIZE;
       sym->hash_next = table[hash];
       table[hash] = sym;
     }
@@ -288,7 +289,7 @@ lookup_minimal_symbol_text (register con
 	       msymbol != NULL && found_symbol == NULL;
 	       msymbol = msymbol->hash_next)
 	    {
-	      if (DEPRECATED_SYMBOL_MATCHES_NAME (msymbol, name) &&
+	      if (strcmp (SYMBOL_LINKAGE_NAME (msymbol), name) == 0 &&
 		  (MSYMBOL_TYPE (msymbol) == mst_text ||
 		   MSYMBOL_TYPE (msymbol) == mst_file_text))
 		{
@@ -364,7 +365,7 @@ lookup_minimal_symbol_solib_trampoline (
 	       msymbol != NULL && found_symbol == NULL;
 	       msymbol = msymbol->hash_next)
 	    {
-	      if (DEPRECATED_SYMBOL_MATCHES_NAME (msymbol, name) &&
+	      if (strcmp (SYMBOL_LINKAGE_NAME (msymbol), name) == 0 &&
 		  MSYMBOL_TYPE (msymbol) == mst_solib_trampoline)
 		return msymbol;
 	    }
@@ -659,8 +660,8 @@ compare_minimal_symbols (const void *fn1
   else
     /* addrs are equal: sort by name */
     {
-      char *name1 = DEPRECATED_SYMBOL_NAME (fn1);
-      char *name2 = DEPRECATED_SYMBOL_NAME (fn2);
+      char *name1 = SYMBOL_LINKAGE_NAME (fn1);
+      char *name2 = SYMBOL_LINKAGE_NAME (fn2);
 
       if (name1 && name2)	/* both have names */
 	return strcmp (name1, name2);
@@ -752,7 +753,8 @@ compact_minimal_symbols (struct minimal_
 	{
 	  if (SYMBOL_VALUE_ADDRESS (copyfrom) ==
 	      SYMBOL_VALUE_ADDRESS ((copyfrom + 1)) &&
-	      (STREQ (DEPRECATED_SYMBOL_NAME (copyfrom), DEPRECATED_SYMBOL_NAME ((copyfrom + 1)))))
+	      (STREQ (SYMBOL_LINKAGE_NAME (copyfrom),
+		      SYMBOL_LINKAGE_NAME ((copyfrom + 1)))))
 	    {
 	      if (MSYMBOL_TYPE ((copyfrom + 1)) == mst_unknown)
 		{
@@ -867,9 +869,9 @@ install_minimal_symbols (struct objfile 
 	  for (bindex = 0; bindex < msym_bunch_index; bindex++, mcount++)
 	    {
 	      msymbols[mcount] = bunch->contents[bindex];
-	      if (DEPRECATED_SYMBOL_NAME (&msymbols[mcount])[0] == leading_char)
+	      if (SYMBOL_LINKAGE_NAME (&msymbols[mcount])[0] == leading_char)
 		{
-		  DEPRECATED_SYMBOL_NAME (&msymbols[mcount])++;
+		  SYMBOL_LINKAGE_NAME (&msymbols[mcount])++;
 		}
 	    }
 	  msym_bunch_index = BUNCH_SIZE;
@@ -898,7 +900,7 @@ install_minimal_symbols (struct objfile 
          symbol count does *not* include this null symbol, which is why it
          is indexed by mcount and not mcount-1. */
 
-      DEPRECATED_SYMBOL_NAME (&msymbols[mcount]) = NULL;
+      SYMBOL_LINKAGE_NAME (&msymbols[mcount]) = NULL;
       SYMBOL_VALUE_ADDRESS (&msymbols[mcount]) = 0;
       MSYMBOL_INFO (&msymbols[mcount]) = NULL;
       MSYMBOL_TYPE (&msymbols[mcount]) = mst_unknown;
@@ -918,7 +920,7 @@ install_minimal_symbols (struct objfile 
 
 	for (i = 0; i < mcount; i++)
 	  {
-	    const char *name = DEPRECATED_SYMBOL_NAME (&objfile->msymbols[i]);
+	    const char *name = SYMBOL_LINKAGE_NAME (&objfile->msymbols[i]);
 	    if (name[0] == '_' && name[1] == 'Z')
 	      {
 		set_cp_abi_as_auto_default ("gnu-v3");
@@ -981,7 +983,8 @@ find_solib_trampoline_target (CORE_ADDR 
       ALL_MSYMBOLS (objfile, msymbol)
       {
 	if (MSYMBOL_TYPE (msymbol) == mst_text
-	    && STREQ (DEPRECATED_SYMBOL_NAME (msymbol), DEPRECATED_SYMBOL_NAME (tsymbol)))
+	    && STREQ (SYMBOL_LINKAGE_NAME (msymbol),
+		      SYMBOL_LINKAGE_NAME (tsymbol)))
 	  return SYMBOL_VALUE_ADDRESS (msymbol);
       }
     }


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]