delete target_ops.to_lookup_symbol
authorJoel Brobecker <brobecker@gnat.com>
Thu, 17 Mar 2011 13:19:24 +0000 (13:19 +0000)
committerJoel Brobecker <brobecker@gnat.com>
Thu, 17 Mar 2011 13:19:24 +0000 (13:19 +0000)
gdb/ChangeLog:

        * target.h (struct target_ops): Remove to_lookup_symbol field.
        (target_lookup_symbol): Delete macro.
        * target.c (nosymbol, debug_to_lookup_symbol): Delete.
        (update_current_target, setup_target_debug): Remove handling
        of to_lookup_symbol target_ops field.
        * ada-tasks.c (get_known_tasks_addr): Remove use of
        target_lookup_symbol.
        * coffread.c (coff_symtab_read): Likewise.
        * dbxread.c (read_dbx_symtab): Ditto.

gdb/ChangeLog
gdb/ada-tasks.c
gdb/coffread.c
gdb/dbxread.c
gdb/target.c
gdb/target.h

index 67fed20c88a3d1eda935bcccbe53e5012099ef5a..68b31de9221b1dcc7648377fdf6f0f6f77d14398 100644 (file)
@@ -1,3 +1,15 @@
+2011-03-17  Joel Brobecker  <brobecker@gnat.com>
+
+       * target.h (struct target_ops): Remove to_lookup_symbol field.
+       (target_lookup_symbol): Delete macro.
+       * target.c (nosymbol, debug_to_lookup_symbol): Delete.
+       (update_current_target, setup_target_debug): Remove handling
+       of to_lookup_symbol target_ops field.
+       * ada-tasks.c (get_known_tasks_addr): Remove use of
+       target_lookup_symbol.
+       * coffread.c (coff_symtab_read): Likewise.
+       * dbxread.c (read_dbx_symtab): Ditto.
+
 2011-03-17  Joel Brobecker  <brobecker@gnat.com>
 
        PR gdb/12116:
index 216902a0b3f6cdcaf82f31eaf28ebc6e4c382615..2cf62b9326acb798fc75152785f43aa5ba7d2b41 100644 (file)
@@ -300,7 +300,7 @@ read_fat_string_value (char *dest, struct value *val, int max_len)
 }
 
 /* Return the address of the Known_Tasks array maintained in
-   the Ada Runtime.  Return NULL if the array could not be found,
+   the Ada Runtime.  Return zero if the array could not be found,
    meaning that the inferior program probably does not use tasking.
 
    In order to provide a fast response time, this function caches
@@ -317,13 +317,9 @@ get_known_tasks_addr (void)
       struct minimal_symbol *msym;
 
       msym = lookup_minimal_symbol (KNOWN_TASKS_NAME, NULL, NULL);
-      if (msym != NULL)
-        known_tasks_addr = SYMBOL_VALUE_ADDRESS (msym);
-      else
-        {
-          if (target_lookup_symbol (KNOWN_TASKS_NAME, &known_tasks_addr) != 0)
-            return 0;
-        }
+      if (msym == NULL)
+        return 0;
+      known_tasks_addr = SYMBOL_VALUE_ADDRESS (msym);
 
       /* FIXME: brobecker 2003-03-05: Here would be a much better place
          to attach the ada-tasks observers, instead of doing this
index 8ec87c14a4b741f866d2ac91ef123efa7041d1c7..b11dd7387c145b8b9268e87617561da63e252ea3 100644 (file)
@@ -902,22 +902,14 @@ coff_symtab_read (long symtab_offset, unsigned int nsyms,
 
            if (cs->c_secnum == N_UNDEF)
              {
-               /* This is a common symbol.  See if the target
-                  environment knows where it has been relocated to.  */
-               CORE_ADDR reladdr;
-
-               if (target_lookup_symbol (cs->c_name, &reladdr))
-                 {
-                   /* Error in lookup; ignore symbol.  */
-                   break;
-                 }
-               tmpaddr = reladdr;
-               /* The address has already been relocated; make sure that
-                  objfile_relocate doesn't relocate it again.  */
-               sec = -2;
-               ms_type = cs->c_sclass == C_EXT
-                 || cs->c_sclass == C_THUMBEXT ?
-                 mst_bss : mst_file_bss;
+               /* This is a common symbol.  We used to rely on
+                  the target to tell us whether it knows where
+                  the symbol has been relocated to, but none of
+                  the target implementations actually provided
+                  that operation.  So we just ignore the symbol,
+                  the same way we would do if we had a target-side
+                  symbol lookup which returned no match.  */
+               break;
              }
            else if (cs->c_secnum == N_ABS)
              {
index 9f9317de52eb0f192af009edaf226eae311ab979..8242cf84dc34f6f3ece23cfe81be42cb487cf700 100644 (file)
@@ -1401,24 +1401,16 @@ read_dbx_symtab (struct objfile *objfile)
          goto record_it;
 
        case N_UNDF | N_EXT:
-         if (nlist.n_value != 0)
-           {
-             /* This is a "Fortran COMMON" symbol.  See if the target
-                environment knows where it has been relocated to.  */
-
-             CORE_ADDR reladdr;
-
-             namestring = set_namestring (objfile, &nlist);
-             if (target_lookup_symbol (namestring, &reladdr))
-               {
-                 continue;     /* Error in lookup; ignore symbol for now.  */
-               }
-             nlist.n_type ^= (N_BSS ^ N_UNDF); /* Define it as a
-                                                  bss-symbol.  */
-             nlist.n_value = reladdr;
-             goto bss_ext_symbol;
-           }
-         continue;             /* Just undefined, not COMMON.  */
+         /* The case (nlist.n_value != 0) is a "Fortran COMMON" symbol.
+            We used to rely on the target to tell us whether it knows
+            where the symbol has been relocated to, but none of the
+            target implementations actually provided that operation.
+            So we just ignore the symbol, the same way we would do if
+            we had a target-side symbol lookup which returned no match.
+
+            All other symbols (with nlist.n_value == 0), are really
+            undefined, and so we ignore them too.  */
+         continue;
 
        case N_UNDF:
          if (processing_acc_compilation && nlist.n_strx == 1)
index aa5992048dd26043a69e06becfe8b7875a810566..45259fd216edef5422cad213b0d42d98fe7bbc9a 100644 (file)
@@ -54,8 +54,6 @@ static int default_watchpoint_addr_within_range (struct target_ops *,
 
 static int default_region_ok_for_hw_watchpoint (CORE_ADDR, int);
 
-static int nosymbol (char *, CORE_ADDR *);
-
 static void tcomplain (void) ATTRIBUTE_NORETURN;
 
 static int nomemory (CORE_ADDR, char *, int, int, struct target_ops *);
@@ -149,8 +147,6 @@ static void debug_to_terminal_info (char *, int);
 
 static void debug_to_load (char *, int);
 
-static int debug_to_lookup_symbol (char *, CORE_ADDR *);
-
 static int debug_to_can_run (void);
 
 static void debug_to_notice_signals (ptid_t);
@@ -532,12 +528,6 @@ noprocess (void)
   error (_("You can't do that without a process to debug."));
 }
 
-static int
-nosymbol (char *name, CORE_ADDR *addrp)
-{
-  return 1;                    /* Symbol does not exist in target env.  */
-}
-
 static void
 default_terminal_info (char *args, int from_tty)
 {
@@ -621,7 +611,6 @@ update_current_target (void)
       INHERIT (to_terminal_info, t);
       /* Do not inherit to_kill.  */
       INHERIT (to_load, t);
-      INHERIT (to_lookup_symbol, t);
       /* Do no inherit to_create_inferior.  */
       INHERIT (to_post_startup_inferior, t);
       INHERIT (to_insert_fork_catchpoint, t);
@@ -774,9 +763,6 @@ update_current_target (void)
   de_fault (to_load,
            (void (*) (char *, int))
            tcomplain);
-  de_fault (to_lookup_symbol,
-           (int (*) (char *, CORE_ADDR *))
-           nosymbol);
   de_fault (to_post_startup_inferior,
            (void (*) (ptid_t))
            target_ignore);
@@ -3800,18 +3786,6 @@ debug_to_load (char *args, int from_tty)
   fprintf_unfiltered (gdb_stdlog, "target_load (%s, %d)\n", args, from_tty);
 }
 
-static int
-debug_to_lookup_symbol (char *name, CORE_ADDR *addrp)
-{
-  int retval;
-
-  retval = debug_target.to_lookup_symbol (name, addrp);
-
-  fprintf_unfiltered (gdb_stdlog, "target_lookup_symbol (%s, xxx)\n", name);
-
-  return retval;
-}
-
 static void
 debug_to_post_startup_inferior (ptid_t ptid)
 {
@@ -4011,7 +3985,6 @@ setup_target_debug (void)
   current_target.to_terminal_save_ours = debug_to_terminal_save_ours;
   current_target.to_terminal_info = debug_to_terminal_info;
   current_target.to_load = debug_to_load;
-  current_target.to_lookup_symbol = debug_to_lookup_symbol;
   current_target.to_post_startup_inferior = debug_to_post_startup_inferior;
   current_target.to_insert_fork_catchpoint = debug_to_insert_fork_catchpoint;
   current_target.to_remove_fork_catchpoint = debug_to_remove_fork_catchpoint;
index e19f7b754a8bfd5c11fbb9e518e74ddf5a8864be..237d1aae35120b2153538af34fadeec096cd686d 100644 (file)
@@ -479,7 +479,6 @@ struct target_ops
     void (*to_terminal_info) (char *, int);
     void (*to_kill) (struct target_ops *);
     void (*to_load) (char *, int);
-    int (*to_lookup_symbol) (char *, CORE_ADDR *);
     void (*to_create_inferior) (struct target_ops *, 
                                char *, char *, char **, int);
     void (*to_post_startup_inferior) (ptid_t);
@@ -1016,17 +1015,6 @@ extern void target_kill (void);
 
 extern void target_load (char *arg, int from_tty);
 
-/* Look up a symbol in the target's symbol table.  NAME is the symbol
-   name.  ADDRP is a CORE_ADDR * pointing to where the value of the
-   symbol should be returned.  The result is 0 if successful, nonzero
-   if the symbol does not exist in the target environment.  This
-   function should not call error() if communication with the target
-   is interrupted, since it is called from symbol reading, but should
-   return nonzero, possibly doing a complain().  */
-
-#define target_lookup_symbol(name, addrp) \
-     (*current_target.to_lookup_symbol) (name, addrp)
-
 /* Start an inferior process and set inferior_ptid to its pid.
    EXEC_FILE is the file to run.
    ALLARGS is a string containing the arguments to the program.