Snap const char * mess.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 9c58b41..efcd81f 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,99 @@
+2003-05-10  Andrew Cagney  <cagney@redhat.com>
+
+	* gdbarch.sh (IN_SOLIB_CALL_TRAMPOLINE): Make string parameter
+	constant.
+
+	* config/rs6000/tm-rs6000.h (rs6000_in_solib_return_trampoline):
+	Make string parameter constant.
+
+	* stack.c (func_command): Delete cast.
+
+	* gdbarch.sh (PC_IN_SIGTRAMP): Make string parameter constant.
+
+	* infrun.c (pc_in_sigtramp): Make "name" constant.
+	(struct execution_control_state): Make "stop_func_name" constant.
+
+	* infcmd.c (step_1): Make "name" constant.
+	(step_once): Make "name" constant.
+
+	* infcall.c (call_function_by_hand): Make "arg_name" constant.
+
+	* command.h (add_com): Make string parameters constant.
+	(add_com_alias, add_info, add_info_alias):
+
+	* breakpoint.c (create_overlay_event_breakpoint): Update.
+	(break_at_finish_at_depth_command_1): Delete cast.
+	(break_at_finish_command_1): Delete cast.
+	(create_longjmp_breakpoint): Make string parameter constant.
+
+	* printcmd.c (print_address_symbolic): Update.
+
+	* defs.h (print_address_symbolic): Make string parameter constant.
+
+	* breakpoint.c (create_overlay_event_breakpoint): Make string
+	parameter constant.
+	(struct ep_type_description): Make "description" constant.
+	(print_one_breakpoint): Make local variable "bpdisps" constant.
+
+	* command.h (error_no_arg): Make string parameter constant.
+
+	* symtab.h (find_pc_partial_function): Make string parameter
+	constant.
+
+	* blockframe.c (find_pc_partial_function): Update.
+
+	* symtab.h (find_pc_sect_partial_function): Make string parameter
+	constant.
+
+	* blockframe.c (find_pc_sect_partial_function): Update.
+
+	* main.c (captured_main): Use xstrdup on TARGET_SYSTEM_ROOT.
+
+	* value.h (lookup_internalvar): Make string parameter constant.
+
+	* values.c (lookup_internalvar): Update.
+
+	* blockframe.c (cache_pc_function_name): Make variable constant.
+
+	* top.c (catcher): Make string parameter constant.
+	(struct captured_command_args): Make "arg" constant.
+
+	* defs.h (wrap_here): Make string parameter constant.
+	(catch_errors, catch_command_errors): Ditto.
+	(error_pre_print): Make string pointer constant.
+	(quit_pre_print, warning_pre_print): Ditto.
+	* utils.c (wrap_here): Update.
+	
+	* top.c (saved_error_pre_print, saved_quit_pre_print): Make local
+	pointer variables constant.
+	(catch_command_errors, catch_errors): Update function signature.
+
+2003-05-08  Andrew Cagney  <cagney@redhat.com>
+
+	* defs.h (store_address): Delete declaration.
+	findvar.c (store_address): Delete function.
+	* arm-tdep.c (arm_push_dummy_call): Replace store_address with
+	store_unsigned_integer.
+	* xstormy16-tdep.c (xstormy16_address_to_pointer): Ditto.
+	* v850-tdep.c (v850_push_arguments): Ditto.
+	* sparc-tdep.c (sparc_get_saved_register): Ditto.
+	* sh-tdep.c (sh64_get_saved_register): Ditto.
+	* rs6000-tdep.c (rs6000_push_arguments): Ditto.
+	* ppc-sysv-tdep.c (ppc_sysv_abi_push_arguments): Ditto.
+	* mips-tdep.c (mips_eabi_push_arguments): Ditto.
+	(mips_get_saved_register): Ditto.
+	* ia64-tdep.c (ia64_get_saved_register): Ditto.
+	(find_func_descr, ia64_push_arguments): Ditto.
+	* i386-tdep.c (i386_push_arguments): Ditto.
+	* hpux-thread.c (hpux_thread_fetch_registers): Ditto.
+	* frv-tdep.c (frv_push_arguments): Ditto.
+	* frame.c (legacy_saved_regs_prev_register): Ditto.
+	(deprecated_generic_get_saved_register): Ditto.
+	* findvar.c (unsigned_address_to_pointer): Ditto.
+	* dwarf2read.c (dwarf2_const_value): Ditto.
+	* arm-linux-tdep.c (arm_linux_push_arguments): Ditto.
+	* alpha-tdep.c (alpha_push_arguments): Ditto.
+
 2003-05-08  Andrew Cagney  <cagney@redhat.com>
 
 	* regcache.h (max_register_size): Delete declaration.
diff --git a/gdb/alpha-tdep.c b/gdb/alpha-tdep.c
index c1648b4..74f4f7d 100644
--- a/gdb/alpha-tdep.c
+++ b/gdb/alpha-tdep.c
@@ -1146,7 +1146,9 @@
     write_memory (sp + m_arg->offset, m_arg->contents, m_arg->len);
   if (struct_return)
     {
-      store_address (raw_buffer, sizeof (CORE_ADDR), struct_addr);
+      /* NOTE: cagney/2003-05-09: Using sizeof CORE_ADDR here is just
+         wrong.  */
+      store_unsigned_integer (raw_buffer, sizeof (CORE_ADDR), struct_addr);
       write_memory (sp, raw_buffer, sizeof (CORE_ADDR));
     }
 
@@ -1226,7 +1228,7 @@
      registers follow in ascending order.
      The PC is saved immediately below the SP.  */
   save_address = sp + PROC_REG_OFFSET (proc_desc);
-  store_address (raw_buffer, 8, read_register (ALPHA_RA_REGNUM));
+  store_unsigned_integer (raw_buffer, 8, read_register (ALPHA_RA_REGNUM));
   write_memory (save_address, raw_buffer, 8);
   save_address += 8;
   mask = PROC_REG_MASK (proc_desc) & 0xffffffffL;
@@ -1235,12 +1237,12 @@
       {
 	if (ireg == ALPHA_RA_REGNUM)
 	  continue;
-	store_address (raw_buffer, 8, read_register (ireg));
+	store_unsigned_integer (raw_buffer, 8, read_register (ireg));
 	write_memory (save_address, raw_buffer, 8);
 	save_address += 8;
       }
 
-  store_address (raw_buffer, 8, read_register (PC_REGNUM));
+  store_unsigned_integer (raw_buffer, 8, read_register (PC_REGNUM));
   write_memory (sp - 8, raw_buffer, 8);
 
   /* Save floating point registers.  */
@@ -1249,7 +1251,7 @@
   for (ireg = 0; mask; ireg++, mask >>= 1)
     if (mask & 1)
       {
-	store_address (raw_buffer, 8, read_register (ireg + FP0_REGNUM));
+	store_unsigned_integer (raw_buffer, 8, read_register (ireg + FP0_REGNUM));
 	write_memory (save_address, raw_buffer, 8);
 	save_address += 8;
       }
diff --git a/gdb/alphanbsd-tdep.c b/gdb/alphanbsd-tdep.c
index a4a77c1..f83b66c 100644
--- a/gdb/alphanbsd-tdep.c
+++ b/gdb/alphanbsd-tdep.c
@@ -178,7 +178,7 @@
 }
 
 static int
-alphanbsd_pc_in_sigtramp (CORE_ADDR pc, char *func_name)
+alphanbsd_pc_in_sigtramp (CORE_ADDR pc, const char *func_name)
 {
   return (nbsd_pc_in_sigtramp (pc, func_name)
 	  || alphanbsd_sigtramp_offset (pc) >= 0);
diff --git a/gdb/arch-utils.c b/gdb/arch-utils.c
index 2f555ff..ee5ba19 100644
--- a/gdb/arch-utils.c
+++ b/gdb/arch-utils.c
@@ -150,13 +150,13 @@
 }
 
 int
-generic_in_solib_call_trampoline (CORE_ADDR pc, char *name)
+generic_in_solib_call_trampoline (CORE_ADDR pc, const char *name)
 {
   return 0;
 }
 
 int
-generic_in_solib_return_trampoline (CORE_ADDR pc, char *name)
+generic_in_solib_return_trampoline (CORE_ADDR pc, const char *name)
 {
   return 0;
 }
@@ -470,7 +470,7 @@
 
 
 int
-legacy_pc_in_sigtramp (CORE_ADDR pc, char *name)
+legacy_pc_in_sigtramp (CORE_ADDR pc, const char *name)
 {
 #if !defined (IN_SIGTRAMP)
   if (SIGTRAMP_START_P ())
@@ -530,7 +530,7 @@
 /* Called by ``show endian''.  */
 
 static void
-show_endian (char *args, int from_tty)
+show_endian (const char *args, int from_tty)
 {
   if (TARGET_BYTE_ORDER_AUTO)
     printf_unfiltered ("The target endianness is set automatically (currently %s endian)\n",
@@ -541,7 +541,7 @@
 }
 
 static void
-set_endian (char *ignore_args, int from_tty, struct cmd_list_element *c)
+set_endian (const char *ignore_args, int from_tty, struct cmd_list_element *c)
 {
   if (set_endian_string == endian_auto)
     {
@@ -713,7 +713,7 @@
    argument. */
 
 static void
-show_architecture (char *args, int from_tty)
+show_architecture (const char *args, int from_tty)
 {
   const char *arch;
   arch = TARGET_ARCHITECTURE->printable_name;
@@ -728,7 +728,8 @@
    argument. */
 
 static void
-set_architecture (char *ignore_args, int from_tty, struct cmd_list_element *c)
+set_architecture (const char *ignore_args, int from_tty,
+		  struct cmd_list_element *c)
 {
   if (strcmp (set_architecture_string, "auto") == 0)
     {
diff --git a/gdb/arch-utils.h b/gdb/arch-utils.h
index cf515a4..808f9b2 100644
--- a/gdb/arch-utils.h
+++ b/gdb/arch-utils.h
@@ -148,9 +148,9 @@
 
 extern CORE_ADDR generic_skip_trampoline_code (CORE_ADDR pc);
 
-extern int generic_in_solib_call_trampoline (CORE_ADDR pc, char *name);
+extern int generic_in_solib_call_trampoline (CORE_ADDR pc, const char *name);
 
-extern int generic_in_solib_return_trampoline (CORE_ADDR pc, char *name);
+extern int generic_in_solib_return_trampoline (CORE_ADDR pc, const char *name);
 
 extern int generic_in_function_epilogue_p (struct gdbarch *gdbarch, CORE_ADDR pc);
 
@@ -163,7 +163,7 @@
 extern int generic_register_byte (int regnum);
 
 /* Prop up old targets that use various IN_SIGTRAMP() macros.  */
-extern int legacy_pc_in_sigtramp (CORE_ADDR pc, char *name);
+extern int legacy_pc_in_sigtramp (CORE_ADDR pc, const char *name);
 
 /* The orginal register_convert*() functions were overloaded.  They
    were used to both: convert between virtual and raw register formats
diff --git a/gdb/arm-linux-tdep.c b/gdb/arm-linux-tdep.c
index 60c8ae4..9debbeb 100644
--- a/gdb/arm-linux-tdep.c
+++ b/gdb/arm-linux-tdep.c
@@ -195,7 +195,7 @@
 	{
 	  CORE_ADDR regval = extract_address (val, len);
 	  if (arm_pc_is_thumb (regval))
-	    store_address (val, len, MAKE_THUMB_ADDR (regval));
+	    store_unsigned_integer (val, len, MAKE_THUMB_ADDR (regval));
 	}
 
       /* Copy the argument to general registers or the stack in
diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c
index d2e3ef5..59fa269 100644
--- a/gdb/arm-tdep.c
+++ b/gdb/arm-tdep.c
@@ -1468,7 +1468,7 @@
 	  if (arm_pc_is_thumb (regval))
 	    {
 	      val = alloca (len);
-	      store_address (val, len, MAKE_THUMB_ADDR (regval));
+	      store_unsigned_integer (val, len, MAKE_THUMB_ADDR (regval));
 	    }
 	}
 
diff --git a/gdb/ax-gdb.c b/gdb/ax-gdb.c
index 5692c35..c0a4837 100644
--- a/gdb/ax-gdb.c
+++ b/gdb/ax-gdb.c
@@ -135,7 +135,7 @@
 		      struct agent_expr *ax, struct axs_value *value);
 
 static void print_axs_value (struct ui_file *f, struct axs_value * value);
-static void agent_command (char *exp, int from_tty);
+static void agent_command (const char *exp, int from_tty);
 
 
 /* Detecting constant expressions.  */
@@ -1826,7 +1826,7 @@
 
 
 static void
-agent_command (char *exp, int from_tty)
+agent_command (const char *exp, int from_tty)
 {
   struct cleanup *old_chain = 0;
   struct expression *expr;
diff --git a/gdb/blockframe.c b/gdb/blockframe.c
index fce25e4..54bf3e5 100644
--- a/gdb/blockframe.c
+++ b/gdb/blockframe.c
@@ -285,7 +285,7 @@
 
 static CORE_ADDR cache_pc_function_low = 0;
 static CORE_ADDR cache_pc_function_high = 0;
-static char *cache_pc_function_name = 0;
+static const char *cache_pc_function_name = 0;
 static struct sec *cache_pc_function_section = NULL;
 
 /* Clear cache, e.g. when symbol table is discarded. */
@@ -311,8 +311,9 @@
    returns 0.  */
 
 int
-find_pc_sect_partial_function (CORE_ADDR pc, asection *section, char **name,
-			       CORE_ADDR *address, CORE_ADDR *endaddr)
+find_pc_sect_partial_function (CORE_ADDR pc, asection *section,
+			       const char **name, CORE_ADDR *address,
+			       CORE_ADDR *endaddr)
 {
   struct partial_symtab *pst;
   struct symbol *f;
@@ -477,7 +478,7 @@
 /* Backward compatibility, no section argument.  */
 
 int
-find_pc_partial_function (CORE_ADDR pc, char **name, CORE_ADDR *address,
+find_pc_partial_function (CORE_ADDR pc, const char **name, CORE_ADDR *address,
 			  CORE_ADDR *endaddr)
 {
   asection *section;
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
index 66b319e..c88eca5 100644
--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
@@ -56,40 +56,41 @@
 
 static void until_break_command_continuation (struct continuation_arg *arg);
 
-static void catch_command_1 (char *, int, int);
+static void catch_command_1 (const char *, int, int);
 
-static void enable_delete_command (char *, int);
+static void enable_delete_command (const char *, int);
 
 static void enable_delete_breakpoint (struct breakpoint *);
 
-static void enable_once_command (char *, int);
+static void enable_once_command (const char *, int);
 
 static void enable_once_breakpoint (struct breakpoint *);
 
-static void disable_command (char *, int);
+static void disable_command (const char *, int);
 
-static void enable_command (char *, int);
+static void enable_command (const char *, int);
 
-static void map_breakpoint_numbers (char *, void (*)(struct breakpoint *));
+static void map_breakpoint_numbers (const char *,
+				    void (*)(struct breakpoint *));
 
-static void ignore_command (char *, int);
+static void ignore_command (const char *, int);
 
 static int breakpoint_re_set_one (void *);
 
-static void clear_command (char *, int);
+static void clear_command (const char *, int);
 
-static void catch_command (char *, int);
+static void catch_command (const char *, int);
 
-static void watch_command (char *, int);
+static void watch_command (const char *, int);
 
 static int can_use_hardware_watchpoint (struct value *);
 
-extern void break_at_finish_command (char *, int);
-extern void break_at_finish_at_depth_command (char *, int);
+extern void break_at_finish_command (const char *, int);
+extern void break_at_finish_at_depth_command (const char *, int);
 
-extern void tbreak_at_finish_command (char *, int);
+extern void tbreak_at_finish_command (const char *, int);
 
-static void break_command_1 (char *, int, int);
+static void break_command_1 (const char *, int, int);
 
 static void mention (struct breakpoint *);
 
@@ -99,7 +100,7 @@
 
 static void describe_other_breakpoints (CORE_ADDR, asection *);
 
-static void breakpoints_info (char *, int);
+static void breakpoints_info (const char *, int);
 
 static void breakpoint_1 (int, int);
 
@@ -109,11 +110,11 @@
 
 static void cleanup_executing_breakpoints (void *);
 
-static void commands_command (char *, int);
+static void commands_command (const char *, int);
 
-static void condition_command (char *, int);
+static void condition_command (const char *, int);
 
-static int get_number_trailer (char **, int);
+static int get_number_trailer (const char **, int);
 
 void set_breakpoint_count (int);
 
@@ -141,29 +142,29 @@
 
 static int cover_target_enable_exception_callback (void *);
 
-static void maintenance_info_breakpoints (char *, int);
+static void maintenance_info_breakpoints (const char *, int);
 
-static void create_longjmp_breakpoint (char *);
+static void create_longjmp_breakpoint (const char *);
 
-static void create_overlay_event_breakpoint (char *);
+static void create_overlay_event_breakpoint (const char *);
 
 static int hw_breakpoint_used_count (void);
 
 static int hw_watchpoint_used_count (enum bptype, int *);
 
-static void hbreak_command (char *, int);
+static void hbreak_command (const char *, int);
 
-static void thbreak_command (char *, int);
+static void thbreak_command (const char *, int);
 
-static void watch_command_1 (char *, int, int);
+static void watch_command_1 (const char *, int, int);
 
-static void rwatch_command (char *, int);
+static void rwatch_command (const char *, int);
 
-static void awatch_command (char *, int);
+static void awatch_command (const char *, int);
 
 static void do_enable_breakpoint (struct breakpoint *, enum bpdisp);
 
-static void solib_load_unload_1 (char *hookname,
+static void solib_load_unload_1 (const char *hookname,
 				 int tempflag,
 				 char *dll_pathname,
 				 char *cond_string, enum bptype bp_kind);
@@ -172,37 +173,38 @@
 						char *cond_string,
 						enum bptype bp_kind);
 
-static void break_at_finish_at_depth_command_1 (char *arg,
+static void break_at_finish_at_depth_command_1 (const char *arg,
 						int flag, int from_tty);
 
-static void break_at_finish_command_1 (char *arg, int flag, int from_tty);
+static void break_at_finish_command_1 (const char *arg, int flag, int from_tty);
 
-static void stop_command (char *arg, int from_tty);
+static void stop_command (const char *arg, int from_tty);
 
-static void stopin_command (char *arg, int from_tty);
+static void stopin_command (const char *arg, int from_tty);
 
-static void stopat_command (char *arg, int from_tty);
+static void stopat_command (const char *arg, int from_tty);
 
-static char *ep_find_event_name_end (char *arg);
+static const char *ep_find_event_name_end (const char *arg);
 
-static char *ep_parse_optional_if_clause (char **arg);
+static const char *ep_parse_optional_if_clause (const char **arg);
 
-static char *ep_parse_optional_filename (char **arg);
+static char *ep_parse_optional_filename (const char **arg);
 
 #if defined(CHILD_INSERT_EXEC_CATCHPOINT)
 static void catch_exec_command_1 (char *arg, int tempflag, int from_tty);
 #endif
 
-static void create_exception_catchpoint (int tempflag, char *cond_string,
+static void create_exception_catchpoint (int tempflag, const char *cond_string,
 					 enum exception_event_kind ex_event,
 					 struct symtab_and_line *sal);
 
 static void catch_exception_command_1 (enum exception_event_kind ex_event, 
-				       char *arg, int tempflag, int from_tty);
+				       const char *arg, int tempflag,
+				       int from_tty);
 
-static void tcatch_command (char *arg, int from_tty);
+static void tcatch_command (const char *arg, int from_tty);
 
-static void ep_skip_leading_whitespace (char **s);
+static void ep_skip_leading_whitespace (const char **s);
 
 /* Prototypes for exported functions. */
 
@@ -360,10 +362,10 @@
    TRAILER is a character which can be found after the number; most
    commonly this is `-'.  If you don't want a trailer, use \0.  */ 
 static int
-get_number_trailer (char **pp, int trailer)
+get_number_trailer (const char **pp, int trailer)
 {
   int retval = 0;	/* default */
-  char *p = *pp;
+  const char *p = *pp;
 
   if (p == NULL)
     /* Empty line means refer to the last breakpoint.  */
@@ -373,7 +375,7 @@
       /* Make a copy of the name, so we can null-terminate it
          to pass to lookup_internalvar().  */
       char *varname;
-      char *start = ++p;
+      const char *start = ++p;
       struct value *val;
 
       while (isalnum (*p) || *p == '_')
@@ -424,7 +426,7 @@
 
 /* Like get_number_trailer, but don't allow a trailer.  */
 int
-get_number (char **pp)
+get_number (const char **pp)
 {
   return get_number_trailer (pp, '\0');
 }
@@ -446,10 +448,10 @@
  */
 
 int 
-get_number_or_range (char **pp)
+get_number_or_range (const char **pp)
 {
   static int last_retval, end_value;
-  static char *end_ptr;
+  static const char *end_ptr;
   static int in_range = 0;
 
   if (**pp != '-')
@@ -459,7 +461,7 @@
       last_retval = get_number_trailer (pp, '-');
       if (**pp == '-')
 	{
-	  char **temp;
+	  const char **temp;
 
 	  /* This is the start of a range (<number1> - <number2>).
 	     Skip the '-', parse and remember the second number,
@@ -510,10 +512,10 @@
 /* condition N EXP -- set break condition of breakpoint N to EXP.  */
 
 static void
-condition_command (char *arg, int from_tty)
+condition_command (const char *arg, int from_tty)
 {
   register struct breakpoint *b;
-  char *p;
+  const char *p;
   register int bnum;
 
   if (arg == 0)
@@ -562,10 +564,10 @@
 
 /* ARGSUSED */
 static void
-commands_command (char *arg, int from_tty)
+commands_command (const char *arg, int from_tty)
 {
   register struct breakpoint *b;
-  char *p;
+  const char *p;
   register int bnum;
   struct command_line *l;
 
@@ -3198,7 +3200,7 @@
   struct ep_type_description
     {
       enum bptype type;
-      char *description;
+      const char *description;
     };
   static struct ep_type_description bptypes[] =
   {
@@ -3229,7 +3231,7 @@
     {bp_catch_throw, "catch throw"}
   };
   
-  static char *bpdisps[] =
+  static const char *bpdisps[] =
   {"del", "dstp", "dis", "keep"};
   static char bpenables[] = "nynny";
   char wrap_indent[80];
@@ -3641,7 +3643,7 @@
 
 /* ARGSUSED */
 static void
-breakpoints_info (char *bnum_exp, int from_tty)
+breakpoints_info (const char *bnum_exp, int from_tty)
 {
   int bnum = -1;
 
@@ -3653,7 +3655,7 @@
 
 /* ARGSUSED */
 static void
-maintenance_info_breakpoints (char *bnum_exp, int from_tty)
+maintenance_info_breakpoints (const char *bnum_exp, int from_tty)
 {
   int bnum = -1;
 
@@ -3916,7 +3918,7 @@
 
 
 static void
-create_longjmp_breakpoint (char *func_name)
+create_longjmp_breakpoint (const char *func_name)
 {
   struct breakpoint *b;
   struct minimal_symbol *m;
@@ -3969,7 +3971,7 @@
 }
 
 static void
-create_overlay_event_breakpoint (char *func_name)
+create_overlay_event_breakpoint (const char *func_name)
 {
   struct breakpoint *b;
   struct minimal_symbol *m;
@@ -4121,15 +4123,15 @@
 #endif
 
 static void
-solib_load_unload_1 (char *hookname, int tempflag, char *dll_pathname,
+solib_load_unload_1 (const char *hookname, int tempflag, char *dll_pathname,
 		     char *cond_string, enum bptype bp_kind)
 {
   struct breakpoint *b;
   struct symtabs_and_lines sals;
   struct cleanup *old_chain;
   struct cleanup *canonical_strings_chain = NULL;
-  char *addr_start = hookname;
-  char *addr_end = NULL;
+  const char *addr_start = hookname;
+  const char *addr_end = NULL;
   char **canonical = (char **) NULL;
   int thread = -1;		/* All threads. */
 
@@ -4608,11 +4610,11 @@
    address strings. ARG points to the end of the SAL. */
 
 void
-parse_breakpoint_sals (char **address,
+parse_breakpoint_sals (const char **address,
 		       struct symtabs_and_lines *sals,
 		       char ***addr_string)
 {
-  char *addr_start = *address;
+  const char *addr_start = *address;
   *addr_string = NULL;
   /* If no arg given, or if first arg is 'if ', use the default
      breakpoint. */
@@ -4676,7 +4678,7 @@
 
 void
 breakpoint_sals_to_pc (struct symtabs_and_lines *sals,
-		       char *address)
+		       const char *address)
 {    
   int i;
   for (i = 0; i < sals->nelts; i++)
@@ -4712,7 +4714,7 @@
    second bit : 0 normal breakpoint, 1 hardware breakpoint. */
 
 static void
-break_command_1 (char *arg, int flag, int from_tty)
+break_command_1 (const char *arg, int flag, int from_tty)
 {
   int tempflag, hardwareflag;
   struct symtabs_and_lines sals;
@@ -4720,7 +4722,7 @@
   /* Pointers in arg to the start, and one past the end, of the
      condition.  */
   char **cond_string = (char **) NULL;
-  char *addr_start = arg;
+  const char *addr_start = arg;
   char **addr_string;
   struct cleanup *old_chain;
   struct cleanup *breakpoint_chain = NULL;
@@ -4781,13 +4783,13 @@
   thread = -1;			/* No specific thread yet */
   for (i = 0; i < sals.nelts; i++)
     {
-      char *tok = arg;
+      const char *tok = arg;
       while (tok && *tok)
 	{
-	  char *end_tok;
+	  const char *end_tok;
 	  int toklen;
-	  char *cond_start = NULL;
-	  char *cond_end = NULL;
+	  const char *cond_start = NULL;
+	  const char *cond_end = NULL;
 	  while (*tok == ' ' || *tok == '\t')
 	    tok++;
 
@@ -4809,7 +4811,7 @@
 	    }
 	  else if (toklen >= 1 && strncmp (tok, "thread", toklen) == 0)
 	    {
-	      char *tmptok;
+	      const char *tmptok;
 
 	      tok = end_tok + 1;
 	      tmptok = tok;
@@ -4866,7 +4868,7 @@
   char **addr_string;
   char **cond_string;
 
-  char *address_end;
+  const char *address_end;
 
   /* Parse the source and lines spec.  Delay check that the expression
      didn't contain trailing garbage until after cleanups are in
@@ -4927,7 +4929,7 @@
     {
       if (args->condition != NULL)
 	{
-	  char *tok = args->condition;
+	  const char *tok = args->condition;
 	  cond[i] = parse_exp_1 (&tok, block_for_pc (sals.sals[i].pc), 0);
 	  if (*tok != '\0')
 	    error ("Garbage %s follows condition", tok);
@@ -4967,11 +4969,11 @@
 
 
 static void
-break_at_finish_at_depth_command_1 (char *arg, int flag, int from_tty)
+break_at_finish_at_depth_command_1 (const char *arg, int flag, int from_tty)
 {
   struct frame_info *frame;
   CORE_ADDR low, high, selected_pc = 0;
-  char *extra_args = NULL;
+  const char *extra_args = NULL;
   char *level_arg;
   char *addr_string;
   int extra_args_len = 0, if_arg = 0;
@@ -5025,7 +5027,7 @@
 
   if (selected_pc)
     {
-      if (find_pc_partial_function (selected_pc, (char **) NULL, &low, &high))
+      if (find_pc_partial_function (selected_pc, NULL, &low, &high))
 	{
 	  addr_string = (char *) xmalloc (26 + extra_args_len);
 	  if (extra_args_len)
@@ -5044,14 +5046,16 @@
 
 
 static void
-break_at_finish_command_1 (char *arg, int flag, int from_tty)
+break_at_finish_command_1 (const char *arg, int flag, int from_tty)
 {
-  char *addr_string, *break_string, *beg_addr_string;
+  const char *addr_string;
+  char *break_string;
+  char *beg_addr_string;
   CORE_ADDR low, high;
   struct symtabs_and_lines sals;
   struct symtab_and_line sal;
   struct cleanup *old_chain;
-  char *extra_args = NULL;
+  const char *extra_args = NULL;
   int extra_args_len = 0;
   int i, if_arg = 0;
 
@@ -5062,9 +5066,10 @@
 	{
 	  if (deprecated_selected_frame)
 	    {
-	      addr_string = (char *) xmalloc (15);
-	      sprintf (addr_string, "*0x%s",
-		       paddr_nz (get_frame_pc (deprecated_selected_frame)));
+	      char *tmp;
+	      xasprintf (&tmp, "*0x%s",
+			 paddr_nz (get_frame_pc (deprecated_selected_frame)));
+	      beg_addr_string = tmp;
 	      if (arg)
 		if_arg = 1;
 	    }
@@ -5076,8 +5081,7 @@
     }
   else
     {
-      addr_string = (char *) xmalloc (strlen (arg) + 1);
-      strcpy (addr_string, arg);
+      beg_addr_string = xstrdup (arg);
     }
 
   if (if_arg)
@@ -5099,7 +5103,7 @@
   sals.sals = NULL;
   sals.nelts = 0;
 
-  beg_addr_string = addr_string;
+  addr_string = beg_addr_string;
   sals = decode_line_1 (&addr_string, 1, (struct symtab *) NULL, 0,
 			(char ***) NULL);
 
@@ -5108,7 +5112,7 @@
   for (i = 0; (i < sals.nelts); i++)
     {
       sal = sals.sals[i];
-      if (find_pc_partial_function (sal.pc, (char **) NULL, &low, &high))
+      if (find_pc_partial_function (sal.pc, NULL, &low, &high))
 	{
 	  break_string = (char *) xmalloc (extra_args_len + 26);
 	  if (extra_args_len)
@@ -5180,49 +5184,49 @@
 }
 
 void
-break_command (char *arg, int from_tty)
+break_command (const char *arg, int from_tty)
 {
   break_command_1 (arg, 0, from_tty);
 }
 
 void
-break_at_finish_command (char *arg, int from_tty)
+break_at_finish_command (const char *arg, int from_tty)
 {
   break_at_finish_command_1 (arg, 0, from_tty);
 }
 
 void
-break_at_finish_at_depth_command (char *arg, int from_tty)
+break_at_finish_at_depth_command (const char *arg, int from_tty)
 {
   break_at_finish_at_depth_command_1 (arg, 0, from_tty);
 }
 
 void
-tbreak_command (char *arg, int from_tty)
+tbreak_command (const char *arg, int from_tty)
 {
   break_command_1 (arg, BP_TEMPFLAG, from_tty);
 }
 
 void
-tbreak_at_finish_command (char *arg, int from_tty)
+tbreak_at_finish_command (const char *arg, int from_tty)
 {
   break_at_finish_command_1 (arg, BP_TEMPFLAG, from_tty);
 }
 
 static void
-hbreak_command (char *arg, int from_tty)
+hbreak_command (const char *arg, int from_tty)
 {
   break_command_1 (arg, BP_HARDWAREFLAG, from_tty);
 }
 
 static void
-thbreak_command (char *arg, int from_tty)
+thbreak_command (const char *arg, int from_tty)
 {
   break_command_1 (arg, (BP_TEMPFLAG | BP_HARDWAREFLAG), from_tty);
 }
 
 static void
-stop_command (char *arg, int from_tty)
+stop_command (const char *arg, int from_tty)
 {
   printf_filtered ("Specify the type of breakpoint to set.\n\
 Usage: stop in <function | address>\n\
@@ -5230,7 +5234,7 @@
 }
 
 static void
-stopin_command (char *arg, int from_tty)
+stopin_command (const char *arg, int from_tty)
 {
   int badInput = 0;
 
@@ -5238,7 +5242,7 @@
     badInput = 1;
   else if (*arg != '*')
     {
-      char *argptr = arg;
+      const char *argptr = arg;
       int hasColon = 0;
 
       /* look for a ':'.  If this is a line number specification, then
@@ -5263,7 +5267,7 @@
 }
 
 static void
-stopat_command (char *arg, int from_tty)
+stopat_command (const char *arg, int from_tty)
 {
   int badInput = 0;
 
@@ -5271,7 +5275,7 @@
     badInput = 1;
   else
     {
-      char *argptr = arg;
+      const char *argptr = arg;
       int hasColon = 0;
 
       /* look for a ':'.  If there is a '::' then get out, otherwise
@@ -5299,7 +5303,7 @@
                 hw_read:   watch read, 
 		hw_access: watch access (read or write) */
 static void
-watch_command_1 (char *arg, int accessflag, int from_tty)
+watch_command_1 (const char *arg, int accessflag, int from_tty)
 {
   struct breakpoint *b;
   struct symtab_and_line sal;
@@ -5308,12 +5312,13 @@
   struct value *val, *mark;
   struct frame_info *frame;
   struct frame_info *prev_frame = NULL;
-  char *exp_start = NULL;
-  char *exp_end = NULL;
-  char *tok, *end_tok;
+  const char *exp_start = NULL;
+  const char *exp_end = NULL;
+  const char *tok;
+  const char *end_tok;
   int toklen;
-  char *cond_start = NULL;
-  char *cond_end = NULL;
+  const char *cond_start = NULL;
+  const char *cond_end = NULL;
   struct expression *cond = NULL;
   int i, other_type_used, target_resources_ok = 0;
   enum bptype bp_type;
@@ -5551,7 +5556,7 @@
 }
 
 static void
-watch_command (char *arg, int from_tty)
+watch_command (const char *arg, int from_tty)
 {
   watch_command_1 (arg, hw_write, from_tty);
 }
@@ -5563,7 +5568,7 @@
 }
 
 static void
-rwatch_command (char *arg, int from_tty)
+rwatch_command (const char *arg, int from_tty)
 {
   watch_command_1 (arg, hw_read, from_tty);
 }
@@ -5575,7 +5580,7 @@
 }
 
 static void
-awatch_command (char *arg, int from_tty)
+awatch_command (const char *arg, int from_tty)
 {
   watch_command_1 (arg, hw_access, from_tty);
 }
@@ -5599,7 +5604,7 @@
 
 /* ARGSUSED */
 void
-until_break_command (char *arg, int from_tty, int anywhere)
+until_break_command (const char *arg, int from_tty, int anywhere)
 {
   struct symtabs_and_lines sals;
   struct symtab_and_line sal;
@@ -5715,7 +5720,7 @@
 #endif /* 0 */
 
 static void
-ep_skip_leading_whitespace (char **s)
+ep_skip_leading_whitespace (const char **s)
 {
   if ((s == NULL) || (*s == NULL))
     return;
@@ -5728,11 +5733,11 @@
    possible match is found, a pointer to the last character of
    the token is returned.  Else, NULL is returned. */
 
-static char *
-ep_find_event_name_end (char *arg)
+static const char *
+ep_find_event_name_end (const char *arg)
 {
-  char *s = arg;
-  char *event_name_end = NULL;
+  const char *s = arg;
+  const char *event_name_end = NULL;
 
   /* If we could depend upon the presense of strrpbrk, we'd use that... */
   if (arg == NULL)
@@ -5761,10 +5766,10 @@
    it updates arg to point to the first character following the parsed
    if clause in the arg string. */
 
-static char *
-ep_parse_optional_if_clause (char **arg)
+static const char *
+ep_parse_optional_if_clause (const char **arg)
 {
-  char *cond_string;
+  const char *cond_string;
 
   if (((*arg)[0] != 'i') || ((*arg)[1] != 'f') || !isspace ((*arg)[2]))
     return NULL;
@@ -5794,10 +5799,10 @@
    Note that clients needing to preserve the returned filename for
    future access should copy it to their own buffers. */
 static char *
-ep_parse_optional_filename (char **arg)
+ep_parse_optional_filename (const char **arg)
 {
   static char filename[1024];
-  char *arg_p = *arg;
+  const char *arg_p = *arg;
   int i;
   char c;
 
@@ -5893,10 +5898,10 @@
 
 #if defined(SOLIB_ADD)
 static void
-catch_load_command_1 (char *arg, int tempflag, int from_tty)
+catch_load_command_1 (const char *arg, int tempflag, int from_tty)
 {
   char *dll_pathname = NULL;
-  char *cond_string = NULL;
+  const char *cond_string = NULL;
 
   ep_skip_leading_whitespace (&arg);
 
@@ -5935,10 +5940,10 @@
 }
 
 static void
-catch_unload_command_1 (char *arg, int tempflag, int from_tty)
+catch_unload_command_1 (const char *arg, int tempflag, int from_tty)
 {
   char *dll_pathname = NULL;
-  char *cond_string = NULL;
+  const char *cond_string = NULL;
 
   ep_skip_leading_whitespace (&arg);
 
@@ -5983,7 +5988,7 @@
    exception event callback */
 
 static void
-create_exception_catchpoint (int tempflag, char *cond_string,
+create_exception_catchpoint (int tempflag, const char *cond_string,
 			     enum exception_event_kind ex_event,
 			     struct symtab_and_line *sal)
 {
@@ -6066,10 +6071,11 @@
 };
 
 static int
-handle_gnu_v3_exceptions (int tempflag, char *cond_string,
+handle_gnu_v3_exceptions (int tempflag, const char *cond_string,
 			  enum exception_event_kind ex_event, int from_tty)
 {
-  char *trigger_func_name, *nameptr;
+  char *trigger_func_name;
+  const char *nameptr;
   struct symtabs_and_lines sals;
   struct breakpoint *b;
 
@@ -6106,10 +6112,10 @@
 /* Deal with "catch catch" and "catch throw" commands */
 
 static void
-catch_exception_command_1 (enum exception_event_kind ex_event, char *arg,
-			   int tempflag, int from_tty)
+catch_exception_command_1 (enum exception_event_kind ex_event,
+			   const char *arg, int tempflag, int from_tty)
 {
-  char *cond_string = NULL;
+  const char *cond_string = NULL;
   struct symtab_and_line *sal = NULL;
 
   ep_skip_leading_whitespace (&arg);
@@ -6160,7 +6166,7 @@
 }
 
 static void
-catch_command_1 (char *arg, int tempflag, int from_tty)
+catch_command_1 (const char *arg, int tempflag, int from_tty)
 {
 
   /* The first argument may be an event name, such as "start" or "load".
@@ -6169,8 +6175,8 @@
      the v4.16-and-earlier GDB meaning of the "catch" command.)
 
      First, try to find the bounds of what might be an event name. */
-  char *arg1_start = arg;
-  char *arg1_end;
+  const char *arg1_start = arg;
+  const char *arg1_end;
   int arg1_length;
 
   if (arg1_start == NULL)
@@ -6319,14 +6325,14 @@
 #endif /* 0 */
 
 static void
-catch_command (char *arg, int from_tty)
+catch_command (const char *arg, int from_tty)
 {
   catch_command_1 (arg, 0, from_tty);
 }
 
 
 static void
-tcatch_command (char *arg, int from_tty)
+tcatch_command (const char *arg, int from_tty)
 {
   catch_command_1 (arg, 1, from_tty);
 }
@@ -6334,7 +6340,7 @@
 /* Delete breakpoints by address or line.  */
 
 static void
-clear_command (char *arg, int from_tty)
+clear_command (const char *arg, int from_tty)
 {
   struct breakpoint *b, *tmp, *prev, *found;
   int default_match;
@@ -6671,7 +6677,7 @@
 }
 
 void
-delete_command (char *arg, int from_tty)
+delete_command (const char *arg, int from_tty)
 {
   struct breakpoint *b, *temp;
 
@@ -6725,7 +6731,7 @@
   struct value *mark;
   int i;
   struct symtabs_and_lines sals;
-  char *s;
+  const char *s;
   enum enable_state save_enable;
 
   switch (b->type)
@@ -7014,9 +7020,9 @@
 /* Command to set ignore-count of breakpoint N to COUNT.  */
 
 static void
-ignore_command (char *args, int from_tty)
+ignore_command (const char *args, int from_tty)
 {
-  char *p = args;
+  const char *p = args;
   register int num;
 
   if (p == 0)
@@ -7039,10 +7045,11 @@
    whose numbers are given in ARGS.  */
 
 static void
-map_breakpoint_numbers (char *args, void (*function) (struct breakpoint *))
+map_breakpoint_numbers (const char *args,
+			void (*function) (struct breakpoint *))
 {
-  register char *p = args;
-  char *p1;
+  const char *p = args;
+  const char *p1;
   register int num;
   register struct breakpoint *b, *tmp;
   int match;
@@ -7107,7 +7114,7 @@
 
 /* ARGSUSED */
 static void
-disable_command (char *args, int from_tty)
+disable_command (const char *args, int from_tty)
 {
   register struct breakpoint *bpt;
   if (args == 0)
@@ -7241,7 +7248,7 @@
 
 /* ARGSUSED */
 static void
-enable_command (char *args, int from_tty)
+enable_command (const char *args, int from_tty)
 {
   register struct breakpoint *bpt;
   if (args == 0)
@@ -7281,7 +7288,7 @@
 
 /* ARGSUSED */
 static void
-enable_once_command (char *args, int from_tty)
+enable_once_command (const char *args, int from_tty)
 {
   map_breakpoint_numbers (args, enable_once_breakpoint);
 }
@@ -7294,7 +7301,7 @@
 
 /* ARGSUSED */
 static void
-enable_delete_command (char *args, int from_tty)
+enable_delete_command (const char *args, int from_tty)
 {
   map_breakpoint_numbers (args, enable_delete_breakpoint);
 }
@@ -7302,7 +7309,7 @@
 /* Use default_breakpoint_'s, or nothing if they aren't valid.  */
 
 struct symtabs_and_lines
-decode_line_spec_1 (char *string, int funfirstline)
+decode_line_spec_1 (const char *string, int funfirstline)
 {
   struct symtabs_and_lines sals;
   if (string == 0)
diff --git a/gdb/breakpoint.h b/gdb/breakpoint.h
index 86eec4a..c9c7953 100644
--- a/gdb/breakpoint.h
+++ b/gdb/breakpoint.h
@@ -556,7 +556,7 @@
 
 extern int breakpoint_thread_match (CORE_ADDR, ptid_t);
 
-extern void until_break_command (char *, int, int);
+extern void until_break_command (const char *, int, int);
 
 extern void breakpoint_re_set (void);
 
@@ -585,15 +585,15 @@
 
 extern void breakpoint_clear_ignore_counts (void);
 
-extern void break_command (char *, int);
+extern void break_command (const char *, int);
 
 extern void hbreak_command_wrapper (char *, int);
 extern void thbreak_command_wrapper (char *, int);
-extern void rbreak_command_wrapper (char *, int);
+extern void rbreak_command_wrapper (const char *, int);
 extern void watch_command_wrapper (char *, int);
 extern void awatch_command_wrapper (char *, int);
 extern void rwatch_command_wrapper (char *, int);
-extern void tbreak_command (char *, int);
+extern void tbreak_command (const char *, int);
 
 extern int insert_breakpoints (void);
 
@@ -668,9 +668,9 @@
 
 extern void clear_breakpoint_hit_counts (void);
 
-extern int get_number (char **);
+extern int get_number (const char **);
 
-extern int get_number_or_range (char **);
+extern int get_number_or_range (const char **);
 
 /* The following are for displays, which aren't really breakpoints, but
    here is as good a place as any for them.  */
@@ -724,7 +724,7 @@
 
 /* Enable breakpoints and delete when hit.  Called with ARG == NULL
    deletes all breakpoints. */
-extern void delete_command (char *arg, int from_tty);
+extern void delete_command (const char *arg, int from_tty);
 
 /* Pull all H/W watchpoints from the target. Return non-zero if the
    remove fails. */
diff --git a/gdb/c-exp.y b/gdb/c-exp.y
index cd4e8d0..4983c03 100644
--- a/gdb/c-exp.y
+++ b/gdb/c-exp.y
@@ -1543,7 +1543,7 @@
                   characters; for comparison expressions, e.g. "a < b > c",
                   there must be spaces before the '<', etc. */
                
-               char * p = find_template_name_end (tokstart + namelen);
+               const char *p = find_template_name_end (tokstart + namelen);
                if (p)
                  namelen = p - tokstart;
                break;
diff --git a/gdb/call-cmds.h b/gdb/call-cmds.h
index 3d2cda1..e048d1a 100644
--- a/gdb/call-cmds.h
+++ b/gdb/call-cmds.h
@@ -28,8 +28,8 @@
 
 extern void initialize_all_files (void);
 
-extern void core_file_command (char *, int);
+extern void core_file_command (const char *, int);
 
-extern void break_command (char *, int);
+extern void break_command (const char *, int);
 
 #endif
diff --git a/gdb/charset.c b/gdb/charset.c
index 0062e28..638fb3a 100644
--- a/gdb/charset.c
+++ b/gdb/charset.c
@@ -1046,7 +1046,8 @@
 
 /* This is the sfunc for the 'set charset' command.  */
 static void
-set_charset_sfunc (char *charset, int from_tty, struct cmd_list_element *c)
+set_charset_sfunc (const char *charset, int from_tty,
+		   struct cmd_list_element *c)
 {
   struct charset *cs = lookup_charset_or_error (host_charset_name);
   check_valid_host_charset (cs);
@@ -1058,7 +1059,7 @@
 /* 'set host-charset' command sfunc.  We need a wrapper here because
    the function needs to have a specific signature.  */
 static void
-set_host_charset_sfunc (char *charset, int from_tty,
+set_host_charset_sfunc (const char *charset, int from_tty,
 			  struct cmd_list_element *c)
 {
   set_host_charset (host_charset_name);
@@ -1066,15 +1067,15 @@
 
 /* Wrapper for the 'set target-charset' command.  */
 static void
-set_target_charset_sfunc (char *charset, int from_tty,
-			    struct cmd_list_element *c)
+set_target_charset_sfunc (const char *charset, int from_tty,
+			  struct cmd_list_element *c)
 {
   set_target_charset (target_charset_name);
 }
 
 /* sfunc for the 'show charset' command.  */
 static void
-show_charset (char *arg, int from_tty)
+show_charset (const char *arg, int from_tty)
 {
   if (current_host_charset == current_target_charset)
     {
diff --git a/gdb/cli/cli-cmds.c b/gdb/cli/cli-cmds.c
index 108329a..fc7cf03 100644
--- a/gdb/cli/cli-cmds.c
+++ b/gdb/cli/cli-cmds.c
@@ -62,37 +62,37 @@
 
 /* Prototypes for local command functions */
 
-static void complete_command (char *, int);
+static void complete_command (const char *, int);
 
-static void echo_command (char *, int);
+static void echo_command (const char *, int);
 
-static void pwd_command (char *, int);
+static void pwd_command (const char *, int);
 
 static void show_version (char *, int);
 
 static void validate_comname (char *);
 
-static void help_command (char *, int);
+static void help_command (const char *, int);
 
-static void show_command (char *, int);
+static void show_command (const char *, int);
 
-static void info_command (char *, int);
+static void info_command (const char *, int);
 
-static void show_debug (char *, int);
+static void show_debug (const char *, int);
 
-static void set_debug (char *, int);
+static void set_debug (const char *, int);
 
-static void show_user (char *, int);
+static void show_user (const char *, int);
 
-static void make_command (char *, int);
+static void make_command (const char *, int);
 
 static void shell_escape (char *, int);
 
-static void edit_command (char *, int);
+static void edit_command (const char *, int);
 
-static void list_command (char *, int);
+static void list_command (const char *, int);
 
-void apropos_command (char *, int);
+void apropos_command (const char *, int);
 
 /* Prototypes for local utility functions */
 
@@ -187,7 +187,7 @@
    none is supplied. */
 
 void
-error_no_arg (char *why)
+error_no_arg (const char *why)
 {
   error ("Argument required (%s).", why);
 }
@@ -197,7 +197,7 @@
 
 /* ARGSUSED */
 static void
-info_command (char *arg, int from_tty)
+info_command (const char *arg, int from_tty)
 {
   printf_unfiltered ("\"info\" must be followed by the name of an info command.\n");
   help_list (infolist, "info ", -1, gdb_stdout);
@@ -207,7 +207,7 @@
 
 /* ARGSUSED */
 static void
-show_command (char *arg, int from_tty)
+show_command (const char *arg, int from_tty)
 {
   cmd_show_list (showlist, from_tty, "");
 }
@@ -217,7 +217,7 @@
 
 /* ARGSUSED */
 static void
-help_command (char *command, int from_tty)
+help_command (const char *command, int from_tty)
 {
   help_cmd (command, gdb_stdout);
 }
@@ -235,7 +235,7 @@
 
 /* ARGSUSED */
 static void
-complete_command (char *arg, int from_tty)
+complete_command (const char *arg, int from_tty)
 {
   int i;
   int argpoint;
@@ -299,7 +299,7 @@
 /* Handle the quit command.  */
 
 void
-quit_command (char *args, int from_tty)
+quit_command (const char *args, int from_tty)
 {
   if (!quit_confirm ())
     error ("Not confirmed.");
@@ -308,7 +308,7 @@
 
 /* ARGSUSED */
 static void
-pwd_command (char *args, int from_tty)
+pwd_command (const char *args, int from_tty)
 {
   if (args)
     error ("The \"pwd\" command does not take an argument: %s", args);
@@ -322,7 +322,7 @@
 }
 
 void
-cd_command (char *dir, int from_tty)
+cd_command (const char *dir, int from_tty)
 {
   int len;
   /* Found something other than leading repetitions of "/..".  */
@@ -422,7 +422,7 @@
 }
 
 void
-source_command (char *args, int from_tty)
+source_command (const char *args, int from_tty)
 {
   FILE *stream;
   struct cleanup *old_cleanups;
@@ -452,7 +452,7 @@
 
 /* ARGSUSED */
 static void
-echo_command (char *text, int from_tty)
+echo_command (const char *text, int from_tty)
 {
   char *p = text;
   register int c;
@@ -543,7 +543,7 @@
 }
 
 static void
-edit_command (char *arg, int from_tty)
+edit_command (const char *arg, int from_tty)
 {
   struct symtabs_and_lines sals;
   struct symtab_and_line sal;
@@ -648,7 +648,7 @@
 }
 
 static void
-list_command (char *arg, int from_tty)
+list_command (const char *arg, int from_tty)
 {
   struct symtabs_and_lines sals, sals_end;
   struct symtab_and_line sal, sal_end, cursal;
@@ -832,10 +832,10 @@
 
 /* ARGSUSED */
 static void
-disassemble_command (char *arg, int from_tty)
+disassemble_command (const char *arg, int from_tty)
 {
   CORE_ADDR low, high;
-  char *name;
+  const char *name;
   CORE_ADDR pc, pc_masked;
   char *space_index;
 #if 0
@@ -914,7 +914,7 @@
 }
 
 static void
-make_command (char *arg, int from_tty)
+make_command (const char *arg, int from_tty)
 {
   char *p;
 
@@ -958,7 +958,7 @@
    regular expression.
 */
 void 
-apropos_command (char *searchstr, int from_tty)
+apropos_command (const char *searchstr, int from_tty)
 {
   extern struct cmd_list_element *cmdlist; /*This is the main command list*/
   regex_t pattern;
diff --git a/gdb/cli/cli-cmds.h b/gdb/cli/cli-cmds.h
index a6e574e..974565f 100644
--- a/gdb/cli/cli-cmds.h
+++ b/gdb/cli/cli-cmds.h
@@ -109,17 +109,17 @@
 
 /* Exported to gdb/main.c */
 
-extern void cd_command (char *, int);
+extern void cd_command (const char *, int);
 
 /* Exported to gdb/top.c and gdb/main.c */
 
-extern void quit_command (char *, int);
+extern void quit_command (const char *, int);
 
-extern void source_command (char *, int);
+extern void source_command (const char *, int);
 
 /* Used everywhere whenever at least one parameter is required and
   none is specified. */
 
-extern NORETURN void error_no_arg (char *) ATTR_NORETURN;
+extern NORETURN void error_no_arg (const char *) ATTR_NORETURN;
 
 #endif /* !defined (CLI_CMDS_H) */
diff --git a/gdb/cli/cli-decode.c b/gdb/cli/cli-decode.c
index 2a6d196..d2fd03b 100644
--- a/gdb/cli/cli-decode.c
+++ b/gdb/cli/cli-decode.c
@@ -130,8 +130,9 @@
    of *LIST). */
 
 struct cmd_list_element *
-add_cmd (char *name, enum command_class class, void (*fun) (char *, int),
-	 char *doc, struct cmd_list_element **list)
+add_cmd (const char *name, enum command_class class,
+	 void (*fun) (const char *, int),
+	 const char *doc, struct cmd_list_element **list)
 {
   register struct cmd_list_element *c
   = (struct cmd_list_element *) xmalloc (sizeof (struct cmd_list_element));
@@ -187,7 +188,8 @@
 /* Note: Doesn't seem to be used anywhere currently. */
 
 struct cmd_list_element *
-add_abbrev_cmd (char *name, enum command_class class, void (*fun) (char *, int),
+add_abbrev_cmd (char *name, enum command_class class,
+		void (*fun) (const char *, int),
 		char *doc, struct cmd_list_element **list)
 {
   register struct cmd_list_element *c
@@ -221,11 +223,11 @@
 }
 
 struct cmd_list_element *
-add_alias_cmd (char *name, char *oldname, enum command_class class,
+add_alias_cmd (const char *name, const char *oldname, enum command_class class,
 	       int abbrev_flag, struct cmd_list_element **list)
 {
   /* Must do this since lookup_cmd tries to side-effect its first arg */
-  char *copied_name;
+  const char *copied_name;
   register struct cmd_list_element *old;
   register struct cmd_list_element *c;
   copied_name = (char *) alloca (strlen (oldname) + 1);
@@ -256,9 +258,10 @@
    of the variable containing that list.  */
 
 struct cmd_list_element *
-add_prefix_cmd (char *name, enum command_class class, void (*fun) (char *, int),
-		char *doc, struct cmd_list_element **prefixlist,
-		char *prefixname, int allow_unknown,
+add_prefix_cmd (const char *name, enum command_class class,
+		void (*fun) (const char *, int),
+		const char *doc, struct cmd_list_element **prefixlist,
+		const char *prefixname, int allow_unknown,
 		struct cmd_list_element **list)
 {
   register struct cmd_list_element *c = add_cmd (name, class, fun, doc, list);
@@ -307,12 +310,12 @@
    DOC is the documentation string.  */
 
 static struct cmd_list_element *
-add_set_or_show_cmd (char *name,
+add_set_or_show_cmd (const char *name,
 		     enum cmd_types type,
 		     enum command_class class,
 		     var_types var_type,
 		     void *var,
-		     char *doc,
+		     const char *doc,
 		     struct cmd_list_element **list)
 {
   struct cmd_list_element *c = add_cmd (name, class, NULL, doc, list);
@@ -383,11 +386,11 @@
 }
 
 struct cmd_list_element *
-add_set_cmd (char *name,
+add_set_cmd (const char *name,
 	     enum command_class class,
 	     var_types var_type,
 	     void *var,
-	     char *doc,
+	     const char *doc,
 	     struct cmd_list_element **list)
 {
   return add_set_or_show_cmd (name, set_cmd, class, var_type, var, doc, list);
@@ -402,11 +405,11 @@
    DOC is the documentation string.  */
 
 struct cmd_list_element *
-add_set_enum_cmd (char *name,
+add_set_enum_cmd (const char *name,
 		  enum command_class class,
 		  const char *enumlist[],
 		  const char **var,
-		  char *doc,
+		  const char *doc,
 		  struct cmd_list_element **list)
 {
   struct cmd_list_element *c
@@ -492,7 +495,7 @@
 /* Remove the command named NAME from the command list.  */
 
 void
-delete_cmd (char *name, struct cmd_list_element **list)
+delete_cmd (const char *name, struct cmd_list_element **list)
 {
   register struct cmd_list_element *c;
   struct cmd_list_element *p;
@@ -532,7 +535,7 @@
 /* Add an element to the list of info subcommands.  */
 
 struct cmd_list_element *
-add_info (char *name, void (*fun) (char *, int), char *doc)
+add_info (const char *name, void (*fun) (char *, int), const char *doc)
 {
   return add_cmd (name, no_class, fun, doc, &infolist);
 }
@@ -540,7 +543,7 @@
 /* Add an alias to the list of info subcommands.  */
 
 struct cmd_list_element *
-add_info_alias (char *name, char *oldname, int abbrev_flag)
+add_info_alias (const char *name, const char *oldname, int abbrev_flag)
 {
   return add_alias_cmd (name, oldname, 0, abbrev_flag, &infolist);
 }
@@ -548,8 +551,8 @@
 /* Add an element to the list of commands.  */
 
 struct cmd_list_element *
-add_com (char *name, enum command_class class, void (*fun) (char *, int),
-	 char *doc)
+add_com (const char *name, enum command_class class, void (*fun) (char *, int),
+	 const char *doc)
 {
   return add_cmd (name, class, fun, doc, &cmdlist);
 }
@@ -557,7 +560,7 @@
 /* Add an alias or abbreviation command to the list of commands.  */
 
 struct cmd_list_element *
-add_com_alias (char *name, char *oldname, enum command_class class,
+add_com_alias (const char *name, const char *oldname, enum command_class class,
 	       int abbrev_flag)
 {
   return add_alias_cmd (name, oldname, class, abbrev_flag, &cmdlist);
@@ -569,7 +572,7 @@
 */
 void 
 apropos_cmd (struct ui_file *stream, struct cmd_list_element *commandlist,
-			 struct re_pattern_buffer *regex, char *prefix)
+	     struct re_pattern_buffer *regex, const char *prefix)
 {
   register struct cmd_list_element *c;
   int returnvalue=1; /*Needed to avoid double printing*/
@@ -705,7 +708,7 @@
  * If you call this routine with a class >= 0, it recurses.
  */
 void
-help_list (struct cmd_list_element *list, char *cmdtype,
+help_list (struct cmd_list_element *list, const char *cmdtype,
 	   enum command_class class, struct ui_file *stream)
 {
   int len;
@@ -776,11 +779,11 @@
 
 /* Print only the first line of STR on STREAM.  */
 void
-print_doc_line (struct ui_file *stream, char *str)
+print_doc_line (struct ui_file *stream, const char *str)
 {
   static char *line_buffer = 0;
   static int line_size;
-  register char *p;
+  const char *p;
 
   if (!line_buffer)
     {
@@ -822,7 +825,7 @@
  */
 void
 help_cmd_list (struct cmd_list_element *list, enum command_class class,
-	       char *prefix, int recurse, struct ui_file *stream)
+	       const char *prefix, int recurse, struct ui_file *stream)
 {
   register struct cmd_list_element *c;
 
@@ -1046,7 +1049,7 @@
 /* All this hair to move the space to the front of cmdtype */
 
 static void
-undef_cmd_error (char *cmdtype, char *q)
+undef_cmd_error (const char *cmdtype, char *q)
 {
   error ("Undefined %scommand: \"%s\".  Try \"help%s%.*s\".",
 	 cmdtype,
@@ -1109,7 +1112,7 @@
          values.  */
       int local_allow_unknown = (last_list ? last_list->allow_unknown :
 				 allow_unknown);
-      char *local_cmdtype = last_list ? last_list->prefixname : cmdtype;
+      const char *local_cmdtype = last_list ? last_list->prefixname : cmdtype;
       struct cmd_list_element *local_list =
       (last_list ? *(last_list->prefixlist) : list);
 
diff --git a/gdb/cli/cli-decode.h b/gdb/cli/cli-decode.h
index d8ab67d..a80298e 100644
--- a/gdb/cli/cli-decode.h
+++ b/gdb/cli/cli-decode.h
@@ -56,7 +56,7 @@
     struct cmd_list_element *next;
 
     /* Name of this command.  */
-    char *name;
+    const char *name;
 
     /* Command class; class values are chosen by application program.  */
     enum command_class class;
@@ -86,7 +86,7 @@
        First line is brief documentation; remaining lines form, with it,
        the full documentation.  First line should end with a period.
        Entire string should also end with a period, not a newline.  */
-    char *doc;
+    const char *doc;
 
     /* flags : a bitfield 
        
@@ -136,7 +136,7 @@
        plus any others needed to get to it.  Should end in a space.
        It is used before the word "command" in describing the
        commands reached through this prefix.  */
-    char *prefixname;
+    const char *prefixname;
 
     /* For prefix commands only:
        nonzero means do not get an error if subcommand is not
@@ -195,24 +195,27 @@
 
 /* API to the manipulation of command lists.  */
 
-extern struct cmd_list_element *add_cmd (char *, enum command_class,
-					 void (*fun) (char *, int), char *,
+extern struct cmd_list_element *add_cmd (const char *, enum command_class,
+					 void (*fun) (const char *, int),
+					 const char *,
 					 struct cmd_list_element **);
 
-extern struct cmd_list_element *add_alias_cmd (char *, char *,
+extern struct cmd_list_element *add_alias_cmd (const char *, const char *,
 					       enum command_class, int,
 					       struct cmd_list_element **);
 
-extern struct cmd_list_element *add_prefix_cmd (char *, enum command_class,
-						void (*fun) (char *, int),
-						char *,
+extern struct cmd_list_element *add_prefix_cmd (const char *,
+						enum command_class,
+						void (*fun) (const char *,
+							     int),
+						const char *,
 						struct cmd_list_element **,
-						char *, int,
+						const char *, int,
 						struct cmd_list_element **);
 
 extern struct cmd_list_element *add_abbrev_prefix_cmd (char *,
 						       enum command_class,
-						       void (*fun) (char *,
+						       void (*fun) (const char *,
 								    int),
 						       char *,
 						       struct cmd_list_element
@@ -223,10 +226,10 @@
 /* Set the commands corresponding callback.  */
 
 extern void set_cmd_cfunc (struct cmd_list_element *cmd,
-			   void (*cfunc) (char *args, int from_tty));
+			   void (*cfunc) (const char *args, int from_tty));
 
 extern void set_cmd_sfunc (struct cmd_list_element *cmd,
-			   void (*sfunc) (char *args, int from_tty,
+			   void (*sfunc) (const char *args, int from_tty,
 					  struct cmd_list_element * c));
 
 extern void set_cmd_completer (struct cmd_list_element *cmd,
@@ -235,13 +238,12 @@
 /* HACK: cagney/2002-02-23: Code, mostly in tracepoints.c, grubs
    around in cmd objects to test the value of the commands sfunc().  */
 extern int cmd_cfunc_eq (struct cmd_list_element *cmd,
-			 void (*cfunc) (char *args, int from_tty));
-
+			 void (*cfunc) (const char *args, int from_tty));
 /* Access to the command's local context.  */
 extern void set_cmd_context (struct cmd_list_element *cmd, void *context);
 extern void *get_cmd_context (struct cmd_list_element *cmd);
 
-extern struct cmd_list_element *lookup_cmd (char **,
+extern struct cmd_list_element *lookup_cmd (const char **,
 					    struct cmd_list_element *, char *,
 					    int, int);
 
@@ -253,46 +255,47 @@
 extern struct cmd_list_element *
   deprecate_cmd (struct cmd_list_element *, char * );
 
-extern void
-  deprecated_cmd_warning (char **);
+extern void deprecated_cmd_warning (const char **);
 
-extern int
-  lookup_cmd_composition (char *text,
-                        struct cmd_list_element **alias,
-                        struct cmd_list_element **prefix_cmd,
-                        struct cmd_list_element **cmd);
+extern int lookup_cmd_composition (const char *text,
+				   struct cmd_list_element **alias,
+				   struct cmd_list_element **prefix_cmd,
+				   struct cmd_list_element **cmd);
 
-extern struct cmd_list_element *add_com (char *, enum command_class,
-					 void (*fun) (char *, int), char *);
+extern struct cmd_list_element *add_com (const char *, enum command_class,
+					 void (*fun) (const char *, int),
+					 const char *);
 
-extern struct cmd_list_element *add_com_alias (char *, char *,
+extern struct cmd_list_element *add_com_alias (const char *, const char *,
 					       enum command_class, int);
 
-extern struct cmd_list_element *add_info (char *, void (*fun) (char *, int),
-					  char *);
+extern struct cmd_list_element *add_info (const char *,
+					  void (*fun) (const char *, int),
+					  const char *);
 
-extern struct cmd_list_element *add_info_alias (char *, char *, int);
+extern struct cmd_list_element *add_info_alias (const char *, const char *,
+						int);
 
 extern char **complete_on_cmdlist (struct cmd_list_element *, char *, char *);
 
 extern char **complete_on_enum (const char *enumlist[], char *, char *);
 
-extern void delete_cmd (char *, struct cmd_list_element **);
+extern void delete_cmd (const char *, struct cmd_list_element **);
 
 extern void help_cmd_list (struct cmd_list_element *, enum command_class,
-			   char *, int, struct ui_file *);
+			   const char *, int, struct ui_file *);
 
-extern struct cmd_list_element *add_set_cmd (char *name, enum
+extern struct cmd_list_element *add_set_cmd (const char *name, enum
 					     command_class class,
 					     var_types var_type, void *var,
-					     char *doc,
+					     const char *doc,
 					     struct cmd_list_element **list);
 
-extern struct cmd_list_element *add_set_enum_cmd (char *name,
+extern struct cmd_list_element *add_set_enum_cmd (const char *name,
 						  enum command_class class,
 						  const char *enumlist[],
 						  const char **var,
-						  char *doc,
+						  const char *doc,
 						  struct cmd_list_element **list);
 
 extern struct cmd_list_element *add_show_from_set (struct cmd_list_element *,
@@ -313,11 +316,11 @@
    function field NULL, the command is interpreted as a help topic, or
    as a class of commands.  */
 
-extern void not_just_help_class_command (char *arg, int from_tty);
+extern void not_just_help_class_command (const char *arg, int from_tty);
 
 /* Exported to cli/cli-setshow.c */
 
-extern void print_doc_line (struct ui_file *, char *);
+extern void print_doc_line (struct ui_file *, const char *);
 
 
 #endif /* !defined (CLI_DECODE_H) */
diff --git a/gdb/cli/cli-dump.c b/gdb/cli/cli-dump.c
index 6bd40e0..367a7e6 100644
--- a/gdb/cli/cli-dump.c
+++ b/gdb/cli/cli-dump.c
@@ -82,8 +82,8 @@
   return make_cleanup (do_fclose_cleanup, file);
 }
 
-char *
-scan_filename_with_cleanup (char **cmd, const char *defname)
+const char *
+scan_filename_with_cleanup (const char **cmd, const char *defname)
 {
   char *filename;
   char *fullname;
@@ -178,14 +178,14 @@
 struct cmd_list_element *binary_append_cmdlist;
 
 static void
-dump_command (char *cmd, int from_tty)
+dump_command (const char *cmd, int from_tty)
 {
   printf_unfiltered ("\"dump\" must be followed by a subcommand.\n\n");
   help_list (dump_cmdlist, "dump ", -1, gdb_stdout);
 }
 
 static void
-append_command (char *cmd, int from_tty)
+append_command (const char *cmd, int from_tty)
 {
   printf_unfiltered ("\"append\" must be followed by a subcommand.\n\n");
   help_list (dump_cmdlist, "append ", -1, gdb_stdout);
@@ -223,7 +223,7 @@
 }
 
 static void
-dump_memory_to_file (char *cmd, char *mode, char *file_format)
+dump_memory_to_file (const char *cmd, char *mode, char *file_format)
 {
   struct cleanup *old_cleanups = make_cleanup (null_cleanup, NULL);
   CORE_ADDR lo;
@@ -274,13 +274,13 @@
 }
 
 static void
-dump_memory_command (char *cmd, char *mode)
+dump_memory_command (const char *cmd, char *mode)
 {
   dump_memory_to_file (cmd, mode, "binary");
 }
 
 static void
-dump_value_to_file (char *cmd, char *mode, char *file_format)
+dump_value_to_file (const char *cmd, char *mode, char *file_format)
 {
   struct cleanup *old_cleanups = make_cleanup (null_cleanup, NULL);
   struct value *val;
@@ -325,7 +325,7 @@
 }
 
 static void
-dump_value_command (char *cmd, char *mode)
+dump_value_command (const char *cmd, char *mode)
 {
   dump_value_to_file (cmd, mode, "binary");
 }
@@ -422,19 +422,20 @@
 
 struct dump_context
 {
-  void (*func) (char *cmd, char *mode);
+  void (*func) (const char *cmd, char *mode);
   char *mode;
 };
 
 static void
-call_dump_func (struct cmd_list_element *c, char *args, int from_tty)
+call_dump_func (struct cmd_list_element *c, const char *args, int from_tty)
 {
   struct dump_context *d = get_cmd_context (c);
   d->func (args, d->mode);
 }
 
 void
-add_dump_command (char *name, void (*func) (char *args, char *mode),
+add_dump_command (const char *name,
+		  void (*func) (const char *args, char *mode),
 		  char *descr)
 
 {
@@ -596,7 +597,7 @@
 }
 
 static void
-restore_command (char *args, int from_tty)
+restore_command (const char *args, int from_tty)
 {
   char *filename;
   struct callback_data data;
@@ -664,35 +665,35 @@
 }
 
 static void
-srec_dump_command (char *cmd, int from_tty)
+srec_dump_command (const char *cmd, int from_tty)
 {
   printf_unfiltered ("\"dump srec\" must be followed by a subcommand.\n");
   help_list (srec_cmdlist, "dump srec ", -1, gdb_stdout);
 }
 
 static void
-ihex_dump_command (char *cmd, int from_tty)
+ihex_dump_command (const char *cmd, int from_tty)
 {
   printf_unfiltered ("\"dump ihex\" must be followed by a subcommand.\n");
   help_list (ihex_cmdlist, "dump ihex ", -1, gdb_stdout);
 }
 
 static void
-tekhex_dump_command (char *cmd, int from_tty)
+tekhex_dump_command (const char *cmd, int from_tty)
 {
   printf_unfiltered ("\"dump tekhex\" must be followed by a subcommand.\n");
   help_list (tekhex_cmdlist, "dump tekhex ", -1, gdb_stdout);
 }
 
 static void
-binary_dump_command (char *cmd, int from_tty)
+binary_dump_command (const char *cmd, int from_tty)
 {
   printf_unfiltered ("\"dump binary\" must be followed by a subcommand.\n");
   help_list (binary_dump_cmdlist, "dump binary ", -1, gdb_stdout);
 }
 
 static void
-binary_append_command (char *cmd, int from_tty)
+binary_append_command (const char *cmd, int from_tty)
 {
   printf_unfiltered ("\"append binary\" must be followed by a subcommand.\n");
   help_list (binary_append_cmdlist, "append binary ", -1, gdb_stdout);
diff --git a/gdb/cli/cli-dump.h b/gdb/cli/cli-dump.h
index 187e0e0..afeee32 100644
--- a/gdb/cli/cli-dump.h
+++ b/gdb/cli/cli-dump.h
@@ -23,11 +23,12 @@
 #define CLI_DUMP_H
 
 extern void add_dump_command (char *name,
-			      void (*func) (char *args, char *mode),
+			      void (*func) (const char *args, char *mode),
 			      char *descr);
 
 /* Utilities for doing the dump.  */
-extern char *scan_filename_with_cleanup (char **cmd, const char *defname);
+extern const char *scan_filename_with_cleanup (const char **cmd,
+					       const char *defname);
 
 extern char *scan_expression_with_cleanup (char **cmd, const char *defname);
 
diff --git a/gdb/cli/cli-script.c b/gdb/cli/cli-script.c
index d68c365..3911497 100644
--- a/gdb/cli/cli-script.c
+++ b/gdb/cli/cli-script.c
@@ -52,7 +52,7 @@
 
 static struct cleanup * setup_user_args (char *p);
 
-static void validate_comname (char *);
+static void validate_comname (const char *);
 
 /* Level of control structure.  */
 static int control_level;
@@ -80,7 +80,7 @@
    control commands (if/while).  */
 
 static struct command_line *
-build_command_line (enum command_control_type type, char *args)
+build_command_line (enum command_control_type type, const char *args)
 {
   struct command_line *cmd;
 
@@ -446,7 +446,7 @@
    loop condition is nonzero.  */
 
 void
-while_command (char *arg, int from_tty)
+while_command (const char *arg, int from_tty)
 {
   struct command_line *command = NULL;
 
@@ -464,7 +464,7 @@
    on the value of the if conditional.  */
 
 void
-if_command (char *arg, int from_tty)
+if_command (const char *arg, int from_tty)
 {
   struct command_line *command = NULL;
 
@@ -1044,9 +1044,9 @@
 }
 
 static void
-validate_comname (char *comname)
+validate_comname (const char *comname)
 {
-  register char *p;
+  const char *p;
 
   if (comname == 0)
     error_no_arg ("name of command to define");
@@ -1062,12 +1062,12 @@
 
 /* This is just a placeholder in the command data structures.  */
 static void
-user_defined_command (char *ignore, int from_tty)
+user_defined_command (const char *ignore, int from_tty)
 {
 }
 
 void
-define_command (char *comname, int from_tty)
+define_command (const char *comname, int from_tty)
 {
 #define MAX_TMPBUF 128   
   enum cmd_hook_type
@@ -1178,11 +1178,11 @@
 }
 
 void
-document_command (char *comname, int from_tty)
+document_command (const char *comname, int from_tty)
 {
   struct command_line *doclines;
   register struct cmd_list_element *c;
-  char *tem = comname;
+  const char *tem = comname;
   char tmpbuf[128];
 
   validate_comname (comname);
@@ -1223,8 +1223,8 @@
 {
   int old_line;
   char *old_file;
-  char *old_pre_error;
-  char *old_error_pre_print;
+  const char *old_pre_error;
+  const char *old_error_pre_print;
 };
 
 static void
diff --git a/gdb/cli/cli-script.h b/gdb/cli/cli-script.h
index 03cb841..8f1c441 100644
--- a/gdb/cli/cli-script.h
+++ b/gdb/cli/cli-script.h
@@ -27,7 +27,7 @@
 
 extern void script_from_file (FILE *stream, char *file);
 
-extern void document_command (char *, int);
+extern void document_command (const char *, int);
 
 extern void define_command (char *, int);
 
diff --git a/gdb/cli/cli-setshow.c b/gdb/cli/cli-setshow.c
index 1d68ae4..4403021 100644
--- a/gdb/cli/cli-setshow.c
+++ b/gdb/cli/cli-setshow.c
@@ -351,7 +351,7 @@
 /* Show all the settings in a list of show commands.  */
 
 void
-cmd_show_list (struct cmd_list_element *list, int from_tty, char *prefix)
+cmd_show_list (struct cmd_list_element *list, int from_tty, const char *prefix)
 {
   struct cleanup *showlist_chain;
 
diff --git a/gdb/cli/cli-setshow.h b/gdb/cli/cli-setshow.h
index 470b8b7..f949246 100644
--- a/gdb/cli/cli-setshow.h
+++ b/gdb/cli/cli-setshow.h
@@ -33,6 +33,6 @@
 /* Exported to cli/cli-cmds.c and gdb/top.c, language.c and valprint.c */
 
 extern void cmd_show_list (struct cmd_list_element *list, int from_tty,
-			   char *prefix);
+			   const char *prefix);
 
 #endif /* !defined (CLI_SETSHOW_H) */
diff --git a/gdb/command.h b/gdb/command.h
index 96c99ab..2a780a4 100644
--- a/gdb/command.h
+++ b/gdb/command.h
@@ -97,24 +97,27 @@
 
 /* Forward-declarations of the entry-points of cli/cli-decode.c.  */
 
-extern struct cmd_list_element *add_cmd (char *, enum command_class,
-					 void (*fun) (char *, int), char *,
+extern struct cmd_list_element *add_cmd (const char *, enum command_class,
+					 void (*fun) (const char *, int),
+					 const char *,
 					 struct cmd_list_element **);
 
-extern struct cmd_list_element *add_alias_cmd (char *, char *,
+extern struct cmd_list_element *add_alias_cmd (const char *, const char *,
 					       enum command_class, int,
 					       struct cmd_list_element **);
 
-extern struct cmd_list_element *add_prefix_cmd (char *, enum command_class,
-						void (*fun) (char *, int),
-						char *,
+extern struct cmd_list_element *add_prefix_cmd (const char *,
+						enum command_class,
+						void (*fun) (const char *,
+							     int),
+						const char *,
 						struct cmd_list_element **,
-						char *, int,
+						const char *, int,
 						struct cmd_list_element **);
 
 extern struct cmd_list_element *add_abbrev_prefix_cmd (char *,
 						       enum command_class,
-						       void (*fun) (char *,
+						       void (*fun) (const char *,
 								    int),
 						       char *,
 						       struct cmd_list_element
@@ -124,11 +127,11 @@
 
 /* Set the commands corresponding callback.  */
 
-typedef void cmd_cfunc_ftype (char *args, int from_tty);
+typedef void cmd_cfunc_ftype (const char *args, int from_tty);
 extern void set_cmd_cfunc (struct cmd_list_element *cmd,
 			   cmd_cfunc_ftype *cfunc);
 
-typedef void cmd_sfunc_ftype (char *args, int from_tty,
+typedef void cmd_sfunc_ftype (const char *args, int from_tty,
 			      struct cmd_list_element *c);
 extern void set_cmd_sfunc (struct cmd_list_element *cmd,
 			   cmd_sfunc_ftype *sfunc);
@@ -139,7 +142,7 @@
 /* HACK: cagney/2002-02-23: Code, mostly in tracepoints.c, grubs
    around in cmd objects to test the value of the commands sfunc().  */
 extern int cmd_cfunc_eq (struct cmd_list_element *cmd,
-			 void (*cfunc) (char *args, int from_tty));
+			 void (*cfunc) (const char *args, int from_tty));
 
 /* Each command object has a local context attached to it. .  */
 extern void set_cmd_context (struct cmd_list_element *cmd, void *context);
@@ -164,7 +167,7 @@
 extern enum cmd_types cmd_type (struct cmd_list_element *cmd);
 
 
-extern struct cmd_list_element *lookup_cmd (char **,
+extern struct cmd_list_element *lookup_cmd (const char **,
 					    struct cmd_list_element *, char *,
 					    int, int);
 
@@ -176,31 +179,32 @@
 extern struct cmd_list_element *
   deprecate_cmd (struct cmd_list_element *, char * );
 
-extern void
-  deprecated_cmd_warning (char **);
+extern void deprecated_cmd_warning (const char **);
 
-extern int
-  lookup_cmd_composition (char *text,
-                        struct cmd_list_element **alias,
-                        struct cmd_list_element **prefix_cmd,
-                        struct cmd_list_element **cmd);
+extern int lookup_cmd_composition (const char *text,
+				   struct cmd_list_element **alias,
+				   struct cmd_list_element **prefix_cmd,
+				   struct cmd_list_element **cmd);
 
-extern struct cmd_list_element *add_com (char *, enum command_class,
-					 void (*fun) (char *, int), char *);
+extern struct cmd_list_element *add_com (const char *, enum command_class,
+					 void (*fun) (const char *, int),
+					 const char *);
 
-extern struct cmd_list_element *add_com_alias (char *, char *,
+extern struct cmd_list_element *add_com_alias (const char *, const char *,
 					       enum command_class, int);
 
-extern struct cmd_list_element *add_info (char *, void (*fun) (char *, int),
-					  char *);
+extern struct cmd_list_element *add_info (const char *,
+					  void (*fun) (const char *, int),
+					  const char *);
 
-extern struct cmd_list_element *add_info_alias (char *, char *, int);
+extern struct cmd_list_element *add_info_alias (const char *, const char *,
+						int);
 
 extern char **complete_on_cmdlist (struct cmd_list_element *, char *, char *);
 
 extern char **complete_on_enum (const char *enumlist[], char *, char *);
 
-extern void delete_cmd (char *, struct cmd_list_element **);
+extern void delete_cmd (const char *, struct cmd_list_element **);
 
 extern void help_cmd (char *, struct ui_file *);
 
@@ -208,7 +212,7 @@
 		       enum command_class, struct ui_file *);
 
 extern void help_cmd_list (struct cmd_list_element *, enum command_class,
-			   char *, int, struct ui_file *);
+			   const char *, int, struct ui_file *);
 
 extern void add_setshow_cmd (char *name,
 			     enum command_class class,
@@ -230,17 +234,17 @@
 				  struct cmd_list_element **set_result,
 				  struct cmd_list_element **show_result);
 
-extern struct cmd_list_element *add_set_cmd (char *name, enum
+extern struct cmd_list_element *add_set_cmd (const char *name, enum
 					     command_class class,
 					     var_types var_type, void *var,
-					     char *doc,
+					     const char *doc,
 					     struct cmd_list_element **list);
 
-extern struct cmd_list_element *add_set_enum_cmd (char *name,
+extern struct cmd_list_element *add_set_enum_cmd (const char *name,
 						  enum command_class class,
 						  const char *enumlist[],
 						  const char **var,
-						  char *doc,
+						  const char *doc,
 						  struct cmd_list_element **list);
 
 extern void add_setshow_auto_boolean_cmd (char *name,
@@ -268,9 +272,9 @@
 
 /* Do a "show" command for each thing on a command list.  */
 
-extern void cmd_show_list (struct cmd_list_element *, int, char *);
+extern void cmd_show_list (struct cmd_list_element *, int, const char *);
 
-extern NORETURN void error_no_arg (char *) ATTR_NORETURN;
+extern NORETURN void error_no_arg (const char *) ATTR_NORETURN;
 
 extern void dont_repeat (void);
 
@@ -278,7 +282,7 @@
    function field NULL, the command is interpreted as a help topic, or
    as a class of commands.  */
 
-extern void not_just_help_class_command (char *, int);
+extern void not_just_help_class_command (const char *, int);
 
 /* check function pointer */
 extern int cmd_func_p (struct cmd_list_element *cmd);
diff --git a/gdb/completer.c b/gdb/completer.c
index 4274241..a9f6e31 100644
--- a/gdb/completer.c
+++ b/gdb/completer.c
@@ -686,11 +686,11 @@
    either QUOTECHARS or BREAKCHARS is NULL, use the same values used
    by the completer.  */
 
-char *
-skip_quoted_chars (char *str, char *quotechars, char *breakchars)
+const char *
+skip_quoted_chars (const char *str, char *quotechars, char *breakchars)
 {
   char quote_char = '\0';
-  char *scan;
+  const char *scan;
 
   if (quotechars == NULL)
     quotechars = gdb_completer_quote_characters;
@@ -728,8 +728,8 @@
    characters and word break characters used by the completer).
    Returns pointer to the location after the "word". */
 
-char *
-skip_quoted (char *str)
+const char *
+skip_quoted (const char *str)
 {
   return skip_quoted_chars (str, NULL, NULL);
 }
diff --git a/gdb/completer.h b/gdb/completer.h
index 7a96951..b0cb488 100644
--- a/gdb/completer.h
+++ b/gdb/completer.h
@@ -37,8 +37,8 @@
 
 /* Exported to linespec.c */
 
-extern char *skip_quoted_chars (char *, char *, char *);
+extern const char *skip_quoted_chars (const char *, char *, char *);
 
-extern char *skip_quoted (char *);
+extern const char *skip_quoted (const char *);
 
 #endif /* defined (COMPLETER_H) */
diff --git a/gdb/config/rs6000/tm-rs6000.h b/gdb/config/rs6000/tm-rs6000.h
index c736589..f377353 100644
--- a/gdb/config/rs6000/tm-rs6000.h
+++ b/gdb/config/rs6000/tm-rs6000.h
@@ -34,7 +34,7 @@
 
 #define IN_SOLIB_RETURN_TRAMPOLINE(pc, name) \
   rs6000_in_solib_return_trampoline (pc, name)
-extern int rs6000_in_solib_return_trampoline (CORE_ADDR, char *);
+extern int rs6000_in_solib_return_trampoline (CORE_ADDR, const char *);
 
 /* If PC is in some function-call trampoline code, return the PC
    where the function itself actually starts.  If not, return NULL.  */
diff --git a/gdb/copying.c b/gdb/copying.c
index a78a862..9514e86 100644
--- a/gdb/copying.c
+++ b/gdb/copying.c
@@ -5,15 +5,15 @@
 #include "command.h"
 #include "gdbcmd.h"
 
-static void show_copying_command (char *, int);
+static void show_copying_command (const char *, int);
 
-static void show_warranty_command (char *, int);
+static void show_warranty_command (const char *, int);
 
 void _initialize_copying (void);
 
 extern int immediate_quit;
 static void
-show_copying_command (char *ignore, int from_tty)
+show_copying_command (const char *ignore, int from_tty)
 {
   immediate_quit++;
   printf_filtered ("		    GNU GENERAL PUBLIC LICENSE\n");
@@ -277,7 +277,7 @@
 }
 
 static void
-show_warranty_command (char *ignore, int from_tty)
+show_warranty_command (const char *ignore, int from_tty)
 {
   immediate_quit++;
   printf_filtered ("			    NO WARRANTY\n");
diff --git a/gdb/corefile.c b/gdb/corefile.c
index 094a3ef..8a45dcb 100644
--- a/gdb/corefile.c
+++ b/gdb/corefile.c
@@ -39,7 +39,7 @@
 /* Local function declarations.  */
 
 extern void _initialize_core (void);
-static void call_extra_exec_file_hooks (char *filename);
+static void call_extra_exec_file_hooks (const char *filename);
 
 /* You can have any number of hooks for `exec_file_command' command to call.
    If there's only one hook, it is set in exec_file_display hook.
@@ -49,7 +49,7 @@
    old code that assumed that only one hook could be set, and which called
    exec_file_display_hook directly.  */
 
-typedef void (*hook_type) (char *);
+typedef void (*hook_type) (const char *);
 
 hook_type exec_file_display_hook;	/* the original hook */
 static hook_type *exec_file_extra_hooks;	/* array of additional hooks */
@@ -63,7 +63,7 @@
 /* Backward compatability with old way of specifying core files.  */
 
 void
-core_file_command (char *filename, int from_tty)
+core_file_command (const char *filename, int from_tty)
 {
   struct target_ops *t;
 
@@ -84,7 +84,7 @@
  * this function will call all of the hook functions. */
 
 static void
-call_extra_exec_file_hooks (char *filename)
+call_extra_exec_file_hooks (const char *filename)
 {
   int i;
 
@@ -96,7 +96,7 @@
    This is called from the x-window display code.  */
 
 void
-specify_exec_file_hook (void (*hook) (char *))
+specify_exec_file_hook (void (*hook) (const char *))
 {
   hook_type *new_array;
 
@@ -412,10 +412,9 @@
 /* Same thing, except it is "auto" not NULL for the default case.  */
 static char *gnutarget_string;
 
-static void set_gnutarget_command (char *, int, struct cmd_list_element *);
-
 static void
-set_gnutarget_command (char *ignore, int from_tty, struct cmd_list_element *c)
+set_gnutarget_command (const char *ignore, int from_tty,
+		       struct cmd_list_element *c)
 {
   if (strcmp (gnutarget_string, "auto") == 0)
     gnutarget = NULL;
diff --git a/gdb/corelow.c b/gdb/corelow.c
index 016140f..114b9ea 100644
--- a/gdb/corelow.c
+++ b/gdb/corelow.c
@@ -65,9 +65,9 @@
 
 static int gdb_check_format (bfd *);
 
-static void core_open (char *, int);
+static void core_open (const char *, int);
 
-static void core_detach (char *, int);
+static void core_detach (const char *, int);
 
 static void core_close (int);
 
@@ -256,7 +256,7 @@
 /* This routine opens and sets up the core file bfd.  */
 
 static void
-core_open (char *filename, int from_tty)
+core_open (const char *filename, int from_tty)
 {
   const char *p;
   int siggy;
@@ -377,7 +377,7 @@
 }
 
 static void
-core_detach (char *args, int from_tty)
+core_detach (const char *args, int from_tty)
 {
   if (args)
     error ("Too many arguments");
diff --git a/gdb/cp-abi.c b/gdb/cp-abi.c
index 3aa9966..79cce91 100644
--- a/gdb/cp-abi.c
+++ b/gdb/cp-abi.c
@@ -209,7 +209,7 @@
    argument is given.  */
 
 static void
-set_cp_abi_cmd (char *args, int from_tty)
+set_cp_abi_cmd (const char *args, int from_tty)
 {
   if (args == NULL)
     {
@@ -224,7 +224,7 @@
 /* Show the currently selected C++ ABI.  */
 
 static void
-show_cp_abi_cmd (char *args, int from_tty)
+show_cp_abi_cmd (const char *args, int from_tty)
 {
   ui_out_text (uiout, "The currently selected C++ ABI is \"");
 
diff --git a/gdb/cp-support.c b/gdb/cp-support.c
index 14456f8..482ef67 100644
--- a/gdb/cp-support.c
+++ b/gdb/cp-support.c
@@ -34,8 +34,8 @@
 
 /* The actual commands.  */
 
-static void maint_cplus_command (char *arg, int from_tty);
-static void first_component_command (char *arg, int from_tty);
+static void maint_cplus_command (const char *arg, int from_tty);
+static void first_component_command (const char *arg, int from_tty);
 
 /* Here are some random pieces of trivia to keep in mind while trying
    to take apart demangled names:
@@ -327,7 +327,7 @@
 /* Don't allow just "maintenance cplus".  */
 
 static  void
-maint_cplus_command (char *arg, int from_tty)
+maint_cplus_command (const char *arg, int from_tty)
 {
   printf_unfiltered ("\"maintenance cplus\" must be followed by the name of a command.\n");
   help_list (maint_cplus_cmd_list, "maintenance cplus ", -1, gdb_stdout);
@@ -338,7 +338,7 @@
    cp_find_first_component.  */
 
 static void
-first_component_command (char *arg, int from_tty)
+first_component_command (const char *arg, int from_tty)
 {
   int len = cp_find_first_component (arg);
   char *prefix = alloca (len + 1);
diff --git a/gdb/dcache.c b/gdb/dcache.c
index 6e74274..3c3e71a 100644
--- a/gdb/dcache.c
+++ b/gdb/dcache.c
@@ -175,7 +175,7 @@
 
 static int dcache_writeback (DCACHE *dcache);
 
-static void dcache_info (char *exp, int tty);
+static void dcache_info (const char *exp, int tty);
 
 void _initialize_dcache (void);
 
@@ -553,7 +553,7 @@
 }
 
 static void
-dcache_info (char *exp, int tty)
+dcache_info (const char *exp, int tty)
 {
   struct dcache_block *p;
 
diff --git a/gdb/defs.h b/gdb/defs.h
index d442783..edb2794 100644
--- a/gdb/defs.h
+++ b/gdb/defs.h
@@ -399,7 +399,7 @@
 
 extern void begin_line (void);
 
-extern void wrap_here (char *);
+extern void wrap_here (const char *);
 
 extern void reinitialize_more_filter (void);
 
@@ -501,7 +501,7 @@
 extern const char *core_addr_to_string_nz (const CORE_ADDR addr);
 extern CORE_ADDR string_to_core_addr (const char *my_string);
 
-extern void fprintf_symbol_filtered (struct ui_file *, char *,
+extern void fprintf_symbol_filtered (struct ui_file *, const char *,
 				     enum language, int);
 
 extern NORETURN void perror_with_name (const char *) ATTR_NORETURN;
@@ -516,10 +516,10 @@
 
 /* From symfile.c */
 
-extern void symbol_file_command (char *, int);
+extern void symbol_file_command (const char *, int);
 
 /* Remote targets may wish to use this as their load function.  */
-extern void generic_load (char *name, int from_tty);
+extern void generic_load (const char *name, int from_tty);
 
 /* Summarise a download */
 extern void print_transfer_performance (struct ui_file *stream,
@@ -531,7 +531,7 @@
 
 typedef void initialize_file_ftype (void);
 
-extern char *skip_quoted (char *);
+extern const char *skip_quoted (const char *);
 
 extern char *gdb_readline (char *);
 
@@ -550,7 +550,7 @@
 extern void set_next_address (CORE_ADDR);
 
 extern void print_address_symbolic (CORE_ADDR, struct ui_file *, int,
-				    char *);
+				    const char *);
 
 extern int build_address_symbolic (CORE_ADDR addr,
 				   int do_demangle, 
@@ -570,11 +570,11 @@
 
 extern int source_full_path_of (char *, char **);
 
-extern void mod_path (char *, char **);
+extern void mod_path (const char *, char **);
 
-extern void add_path (char *, char **, int);
+extern void add_path (const char *, char **, int);
 
-extern void directory_command (char *, int);
+extern void directory_command (const char *, int);
 
 extern char *source_path;
 
@@ -865,15 +865,15 @@
 
 /* Message to be printed before the error message, when an error occurs.  */
 
-extern char *error_pre_print;
+extern const char *error_pre_print;
 
 /* Message to be printed before the error message, when an error occurs.  */
 
-extern char *quit_pre_print;
+extern const char *quit_pre_print;
 
 /* Message to be printed before the warning message, when a warning occurs.  */
 
-extern char *warning_pre_print;
+extern const char *warning_pre_print;
 
 extern NORETURN void verror (const char *fmt, va_list ap) ATTR_NORETURN;
 
@@ -958,7 +958,7 @@
 typedef int (catch_exceptions_ftype) (struct ui_out *ui_out, void *args);
 extern int catch_exceptions (struct ui_out *uiout,
 			     catch_exceptions_ftype *func, void *func_args,
-			     char *errstring, return_mask mask);
+			     const char *errstring, return_mask mask);
 
 /* If CATCH_ERRORS_FTYPE throws an error, catch_errors() returns zero
    otherwize the result from CATCH_ERRORS_FTYPE is returned. It is
@@ -970,13 +970,16 @@
    This function is superseeded by catch_exceptions().  */
 
 typedef int (catch_errors_ftype) (void *);
-extern int catch_errors (catch_errors_ftype *, void *, char *, return_mask);
+extern int catch_errors (catch_errors_ftype *, void *, const char *,
+			 return_mask);
 
 /* Template to catch_errors() that wraps calls to command
    functions. */
 
-typedef void (catch_command_errors_ftype) (char *, int);
-extern int catch_command_errors (catch_command_errors_ftype *func, char *command, int from_tty, return_mask);
+typedef void (catch_command_errors_ftype) (const char *, int);
+extern int catch_command_errors (catch_command_errors_ftype *func,
+				 const char *command, int from_tty,
+				 return_mask);
 
 extern void warning (const char *, ...) ATTR_FORMAT (printf, 1, 2);
 
@@ -1134,8 +1137,6 @@
 
 extern void store_unsigned_integer (void *, int, ULONGEST);
 
-extern void store_address (void *, int, LONGEST);
-
 extern void store_typed_address (void *buf, struct type *type, CORE_ADDR addr);
 
 
@@ -1174,7 +1175,7 @@
 extern void (*print_frame_info_listing_hook) (struct symtab * s,
 					      int line, int stopline,
 					      int noerror);
-extern struct frame_info *parse_frame_specification (char *frame_exp);
+extern struct frame_info *parse_frame_specification (const char *frame_exp);
 extern int (*query_hook) (const char *, va_list);
 extern void (*warning_hook) (const char *, va_list);
 extern void (*flush_hook) (struct ui_file * stream);
diff --git a/gdb/demangle.c b/gdb/demangle.c
index bcf9b77..0e5dcb8 100644
--- a/gdb/demangle.c
+++ b/gdb/demangle.c
@@ -57,8 +57,6 @@
 
 static const char **demangling_style_names;
 
-static void set_demangling_command (char *, int, struct cmd_list_element *);
-
 /* Set current demangling style.  Called by the "set demangle-style"
    command after it has updated the current_demangling_style_string to
    match what the user has entered.
@@ -76,7 +74,8 @@
    a malloc'd string, even if it is a null-string. */
 
 static void
-set_demangling_command (char *ignore, int from_tty, struct cmd_list_element *c)
+set_demangling_command (const char *ignore, int from_tty,
+			struct cmd_list_element *c)
 {
   const struct demangler_engine *dem;
 
@@ -149,7 +148,7 @@
       xfree (current_demangling_style_string);
     }
   current_demangling_style_string = savestring (style, strlen (style));
-  set_demangling_command ((char *) NULL, 0, (struct cmd_list_element *) NULL);
+  set_demangling_command (NULL, 0, (struct cmd_list_element *) NULL);
 }
 
 /* G++ uses a special character to indicate certain internal names.  Which
diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog
index e525837..aae6faf 100644
--- a/gdb/doc/ChangeLog
+++ b/gdb/doc/ChangeLog
@@ -1,3 +1,8 @@
+2003-05-08  Andrew Cagney  <cagney@redhat.com>
+
+	* gdbint.texinfo (Target Architecture Definition): Delete
+	reference to "store_address".
+
 2003-05-08  Jim Blandy  <jimb@redhat.com>
 
 	* gdb.texinfo (Dump/Restore Files): Update documentation for
diff --git a/gdb/doc/gdbint.texinfo b/gdb/doc/gdbint.texinfo
index 28cdc82..42b9de4 100644
--- a/gdb/doc/gdbint.texinfo
+++ b/gdb/doc/gdbint.texinfo
@@ -2617,19 +2617,6 @@
 @code{extract_typed_address} instead.
 @end deftypefun
 
-@deftypefun void store_address (void *@var{addr}, int @var{len}, LONGEST @var{val})
-Store @var{val} at @var{addr} as a @var{len}-byte integer, in the
-appropriate endianness for the current architecture.  Note that
-@var{addr} refers to a buffer in @value{GDBN}'s memory, not the
-inferior's.
-
-This function should only be used in architecture-specific code; it
-doesn't have enough information to turn a true address into bits in the
-appropriate way for the current architecture.  If you can, use
-@code{store_typed_address} instead.
-@end deftypefun
-
-
 Here are some macros which architectures can define to indicate the
 relationship between pointers and addresses.  These have default
 definitions, appropriate for architectures on which all pointers are
diff --git a/gdb/dummy-frame.c b/gdb/dummy-frame.c
index e16056c..2f62262 100644
--- a/gdb/dummy-frame.c
+++ b/gdb/dummy-frame.c
@@ -443,7 +443,7 @@
 }
 
 static void
-maintenance_print_dummy_frames (char *args, int from_tty)
+maintenance_print_dummy_frames (const char *args, int from_tty)
 {
   if (args == NULL)
     fprint_dummy_frames (gdb_stdout);
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index a0a2f9b..6359337 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -5319,8 +5319,10 @@
 								   (sym)));
       SYMBOL_VALUE_BYTES (sym) = (char *)
 	obstack_alloc (&objfile->symbol_obstack, cu_header->addr_size);
-      store_address (SYMBOL_VALUE_BYTES (sym), cu_header->addr_size,
-		     DW_ADDR (attr));
+      /* NOTE: cagney/2003-05-09: In-lined store_address call with
+         it's body - store_unsigned_integer.  */
+      store_unsigned_integer (SYMBOL_VALUE_BYTES (sym), cu_header->addr_size,
+			      DW_ADDR (attr));
       SYMBOL_CLASS (sym) = LOC_CONST_BYTES;
       break;
     case DW_FORM_block1:
diff --git a/gdb/environ.c b/gdb/environ.c
index 1f9a9d6..576cd4a 100644
--- a/gdb/environ.c
+++ b/gdb/environ.c
@@ -161,7 +161,7 @@
 /* Remove the setting for variable VAR from environment E.  */
 
 void
-unset_in_environ (struct environ *e, char *var)
+unset_in_environ (struct environ *e, const char *var)
 {
   register int len = strlen (var);
   register char **vector = e->vector;
diff --git a/gdb/environ.h b/gdb/environ.h
index 1aa1394..4485b04 100644
--- a/gdb/environ.h
+++ b/gdb/environ.h
@@ -44,7 +44,7 @@
 
 extern void set_in_environ (struct environ *, const char *, const char *);
 
-extern void unset_in_environ (struct environ *, char *);
+extern void unset_in_environ (struct environ *, const char *);
 
 extern char **environ_vector (struct environ *);
 
diff --git a/gdb/eval.c b/gdb/eval.c
index c266cd1..44005ac 100644
--- a/gdb/eval.c
+++ b/gdb/eval.c
@@ -77,7 +77,7 @@
    and return the result as a number.  */
 
 CORE_ADDR
-parse_and_eval_address (char *exp)
+parse_and_eval_address (const char *exp)
 {
   struct expression *expr = parse_expression (exp);
   register CORE_ADDR addr;
@@ -93,7 +93,7 @@
    and advanced that variable across the characters parsed.  */
 
 CORE_ADDR
-parse_and_eval_address_1 (char **expptr)
+parse_and_eval_address_1 (const char **expptr)
 {
   struct expression *expr = parse_exp_1 (expptr, (struct block *) 0, 0);
   register CORE_ADDR addr;
@@ -108,7 +108,7 @@
 /* Like parse_and_eval_address, but treats the value of the expression
    as an integer, not an address, returns a LONGEST, not a CORE_ADDR */
 LONGEST
-parse_and_eval_long (char *exp)
+parse_and_eval_long (const char *exp)
 {
   struct expression *expr = parse_expression (exp);
   register LONGEST retval;
@@ -121,7 +121,7 @@
 }
 
 struct value *
-parse_and_eval (char *exp)
+parse_and_eval (const char *exp)
 {
   struct expression *expr = parse_expression (exp);
   struct value *val;
@@ -138,7 +138,7 @@
    EXPP is advanced to point to the comma.  */
 
 struct value *
-parse_to_comma_and_eval (char **expp)
+parse_to_comma_and_eval (const char **expp)
 {
   struct expression *expr = parse_exp_1 (expp, (struct block *) 0, 1);
   struct value *val;
diff --git a/gdb/event-top.c b/gdb/event-top.c
index ceef7b9..8e928d9 100644
--- a/gdb/event-top.c
+++ b/gdb/event-top.c
@@ -1090,7 +1090,8 @@
 /* Called by do_setshow_command.  */
 /* ARGSUSED */
 void
-set_async_editing_command (char *args, int from_tty, struct cmd_list_element *c)
+set_async_editing_command (const char *args, int from_tty,
+			   struct cmd_list_element *c)
 {
   change_line_handler ();
 }
@@ -1098,7 +1099,8 @@
 /* Called by do_setshow_command.  */
 /* ARGSUSED */
 void
-set_async_annotation_level (char *args, int from_tty, struct cmd_list_element *c)
+set_async_annotation_level (const char *args, int from_tty,
+			    struct cmd_list_element *c)
 {
   change_annotation_level ();
 }
@@ -1106,7 +1108,7 @@
 /* Called by do_setshow_command.  */
 /* ARGSUSED */
 void
-set_async_prompt (char *args, int from_tty, struct cmd_list_element *c)
+set_async_prompt (const char *args, int from_tty, struct cmd_list_element *c)
 {
   PROMPT (0) = savestring (new_async_prompt, strlen (new_async_prompt));
 }
diff --git a/gdb/event-top.h b/gdb/event-top.h
index 7e48a6c..2609badb 100644
--- a/gdb/event-top.h
+++ b/gdb/event-top.h
@@ -81,11 +81,11 @@
 void gdb_setup_readline (void);
 void gdb_disable_readline (void);
 extern void async_init_signals (void);
-extern void set_async_editing_command (char *args, int from_tty,
+extern void set_async_editing_command (const char *args, int from_tty,
 				       struct cmd_list_element *c);
-extern void set_async_annotation_level (char *args, int from_tty,
+extern void set_async_annotation_level (const char *args, int from_tty,
 					struct cmd_list_element *c);
-extern void set_async_prompt (char *args, int from_tty,
+extern void set_async_prompt (const char *args, int from_tty,
 			      struct cmd_list_element *c);
 
 /* Signal to catch ^Z typed while reading a command: SIGTSTP or SIGCONT.  */
diff --git a/gdb/exec.c b/gdb/exec.c
index 0bde096..4620ad6 100644
--- a/gdb/exec.c
+++ b/gdb/exec.c
@@ -51,7 +51,7 @@
 
 struct vmap *map_vmap (bfd *, bfd *);
 
-void (*file_changed_hook) (char *);
+void (*file_changed_hook) (const char *);
 
 /* Prototypes for local functions */
 
@@ -59,9 +59,9 @@
 
 static void exec_close (int);
 
-static void file_command (char *, int);
+static void file_command (const char *, int);
 
-static void set_section_command (char *, int);
+static void set_section_command (const char *, int);
 
 static void exec_files_info (struct target_ops *);
 
@@ -95,7 +95,7 @@
 struct vmap *vmap;
 
 void
-exec_open (char *args, int from_tty)
+exec_open (const char *args, int from_tty)
 {
   target_preopen (from_tty);
   exec_file_attach (args, from_tty);
@@ -187,7 +187,7 @@
    ARGS is assumed to be the filename. */
 
 void
-exec_file_attach (char *filename, int from_tty)
+exec_file_attach (const char *filename, int from_tty)
 {
   /* Remove any previous exec file.  */
   unpush_target (&exec_ops);
@@ -312,7 +312,7 @@
    If ARGS is NULL, we just want to close the exec file. */
 
 static void
-exec_file_command (char *args, int from_tty)
+exec_file_command (const char *args, int from_tty)
 {
   char **argv;
   char *filename;
@@ -349,7 +349,7 @@
    command was added?  */
 
 static void
-file_command (char *arg, int from_tty)
+file_command (const char *arg, int from_tty)
 {
   /* FIXME, if we lose on reading the symbol file, we should revert
      the exec file, but that's rough.  */
@@ -645,10 +645,10 @@
 }
 
 static void
-set_section_command (char *args, int from_tty)
+set_section_command (const char *args, int from_tty)
 {
   struct section_table *p;
-  char *secname;
+  const char *secname;
   unsigned seclen;
   unsigned long secaddr;
   char secprint[100];
diff --git a/gdb/expression.h b/gdb/expression.h
index da95fcb..2e6b162 100644
--- a/gdb/expression.h
+++ b/gdb/expression.h
@@ -356,9 +356,9 @@
 
 /* From parse.c */
 
-extern struct expression *parse_expression (char *);
+extern struct expression *parse_expression (const char *);
 
-extern struct expression *parse_exp_1 (char **, struct block *, int);
+extern struct expression *parse_exp_1 (const char **, struct block *, int);
 
 /* The innermost context required by the stack and register variables
    we've encountered so far.  To use this, set it to NULL, then call
diff --git a/gdb/f-lang.c b/gdb/f-lang.c
index 2a4eac3..5c13e2e 100644
--- a/gdb/f-lang.c
+++ b/gdb/f-lang.c
@@ -787,7 +787,7 @@
    that belongs to function funcname */
 
 SAVED_F77_COMMON_PTR
-find_common_for_function (char *name, char *funcname)
+find_common_for_function (const char *name, char *funcname)
 {
 
   SAVED_F77_COMMON_PTR tmp;
diff --git a/gdb/f-lang.h b/gdb/f-lang.h
index d929b91..3e60773 100644
--- a/gdb/f-lang.h
+++ b/gdb/f-lang.h
@@ -61,7 +61,7 @@
 extern SAVED_F77_COMMON_PTR tail_common_list;	/* Ptr to last saved COMMON  */
 extern SAVED_F77_COMMON_PTR current_common;	/* Ptr to current COMMON */
 
-extern SAVED_F77_COMMON_PTR find_common_for_function (char *, char *);
+extern SAVED_F77_COMMON_PTR find_common_for_function (const char *, char *);
 
 #define UNINITIALIZED_SECNUM -1
 #define COMMON_NEEDS_PATCHING(blk) ((blk)->secnum == UNINITIALIZED_SECNUM)
diff --git a/gdb/f-valprint.c b/gdb/f-valprint.c
index f67a260..f6edcb6 100644
--- a/gdb/f-valprint.c
+++ b/gdb/f-valprint.c
@@ -40,7 +40,7 @@
 #endif
 
 extern void _initialize_f_valprint (void);
-static void info_common_command (char *, int);
+static void info_common_command (const char *, int);
 static void list_all_visible_commons (char *);
 static void f77_print_array (struct type *, char *, CORE_ADDR,
 			     struct ui_file *, int, int, int,
@@ -575,7 +575,7 @@
    given name */
 
 static void
-info_common_command (char *comname, int from_tty)
+info_common_command (const char *comname, int from_tty)
 {
   SAVED_F77_COMMON_PTR the_common;
   COMMON_ENTRY_PTR entry;
diff --git a/gdb/findvar.c b/gdb/findvar.c
index ca371d2..c9623bf 100644
--- a/gdb/findvar.c
+++ b/gdb/findvar.c
@@ -252,24 +252,6 @@
     }
 }
 
-/* Store the address VAL as a LEN-byte value in target byte order at
-   ADDR.  ADDR is a buffer in the GDB process, not in the inferior.
-
-   This function should only be used by target-specific code.  It
-   assumes that a pointer has the same representation as that thing's
-   address represented as an integer.  Some machines use word
-   addresses, or similarly munged things, for certain types of
-   pointers, so that assumption doesn't hold everywhere.
-
-   Common code should use store_typed_address instead, or something else
-   based on ADDRESS_TO_POINTER.  */
-void
-store_address (void *addr, int len, LONGEST val)
-{
-  store_unsigned_integer (addr, len, val);
-}
-
-
 /* Store the address ADDR as a pointer of type TYPE at BUF, in target
    form.  */
 void
@@ -365,7 +347,7 @@
 void
 unsigned_address_to_pointer (struct type *type, void *buf, CORE_ADDR addr)
 {
-  store_address (buf, TYPE_LENGTH (type), addr);
+  store_unsigned_integer (buf, TYPE_LENGTH (type), addr);
 }
 
 void
diff --git a/gdb/frame.c b/gdb/frame.c
index a664b97..868e80a 100644
--- a/gdb/frame.c
+++ b/gdb/frame.c
@@ -983,8 +983,10 @@
 	  *addrp = 0;
 	  *realnump = -1;
 	  if (bufferp != NULL)
-	    store_address (bufferp, REGISTER_RAW_SIZE (regnum),
-			   get_frame_saved_regs (frame)[regnum]);
+	    /* NOTE: cagney/2003-05-09: In-lined store_address with
+               it's body - store_unsigned_integer.  */
+	    store_unsigned_integer (bufferp, REGISTER_RAW_SIZE (regnum),
+				    get_frame_saved_regs (frame)[regnum]);
 	}
       else
 	{
@@ -1125,8 +1127,11 @@
 	      if (regnum == SP_REGNUM)
 		{
 		  if (raw_buffer)	/* SP register treated specially */
-		    store_address (raw_buffer, REGISTER_RAW_SIZE (regnum),
-				   get_frame_saved_regs (frame)[regnum]);
+		    /* NOTE: cagney/2003-05-09: In-line store_address
+                       with it's body - store_unsigned_integer.  */
+		    store_unsigned_integer (raw_buffer,
+					    REGISTER_RAW_SIZE (regnum),
+					    get_frame_saved_regs (frame)[regnum]);
 		}
 	      else
 		{
@@ -1166,7 +1171,7 @@
     return DUMMY_FRAME;
   else
     {
-      char *name;
+      const char *name;
       find_pc_partial_function (pc, &name, NULL, NULL);
       if (PC_IN_SIGTRAMP (pc, name))
 	return SIGTRAMP_FRAME;
@@ -1674,7 +1679,7 @@
 	 be set and then the entire initialization can be skipped.
 	 Unforunatly, its the INIT code that sets the PC (Hmm, catch
 	 22).  */
-      char *name;
+      const char *name;
       find_pc_partial_function (get_frame_pc (prev), &name, NULL, NULL);
       if (PC_IN_SIGTRAMP (get_frame_pc (prev), name))
 	prev->type = SIGTRAMP_FRAME;
diff --git a/gdb/frame.h b/gdb/frame.h
index a8f05f3..3ae0e32 100644
--- a/gdb/frame.h
+++ b/gdb/frame.h
@@ -495,13 +495,13 @@
 				void *buf);
 
 /* From stack.c.  */
-extern void args_info (char *, int);
+extern void args_info (const char *, int);
 
-extern void locals_info (char *, int);
+extern void locals_info (const char *, int);
 
 extern void (*selected_frame_level_changed_hook) (int);
 
-extern void return_command (char *, int);
+extern void return_command (const char *, int);
 
 
 /* NOTE: cagney/2002-11-27:
diff --git a/gdb/frv-tdep.c b/gdb/frv-tdep.c
index ce02b7f..4d8f3fe 100644
--- a/gdb/frv-tdep.c
+++ b/gdb/frv-tdep.c
@@ -843,7 +843,7 @@
 
       if (typecode == TYPE_CODE_STRUCT || typecode == TYPE_CODE_UNION)
 	{
-	  store_address (valbuf, 4, VALUE_ADDRESS (arg));
+	  store_unsigned_integer (valbuf, 4, VALUE_ADDRESS (arg));
 	  typecode = TYPE_CODE_PTR;
 	  len = 4;
 	  val = valbuf;
diff --git a/gdb/gdb.h b/gdb/gdb.h
index 6a2eaa0..689ff4b 100644
--- a/gdb/gdb.h
+++ b/gdb/gdb.h
@@ -54,7 +54,7 @@
 			    int thread, int ignore_count);
 
 /* Switch thread and print notification. */
-enum gdb_rc gdb_thread_select (struct ui_out *uiout, char *tidstr);
+enum gdb_rc gdb_thread_select (struct ui_out *uiout, const char *tidstr);
 
 /* Print a list of known thread ids. */
 enum gdb_rc gdb_list_thread_ids (struct ui_out *uiout);
diff --git a/gdb/gdbarch.c b/gdb/gdbarch.c
index db9e76e..9c9a2f0 100644
--- a/gdb/gdbarch.c
+++ b/gdb/gdbarch.c
@@ -5332,7 +5332,7 @@
 }
 
 int
-gdbarch_in_solib_call_trampoline (struct gdbarch *gdbarch, CORE_ADDR pc, char *name)
+gdbarch_in_solib_call_trampoline (struct gdbarch *gdbarch, CORE_ADDR pc, const char *name)
 {
   gdb_assert (gdbarch != NULL);
   if (gdbarch->in_solib_call_trampoline == 0)
@@ -5351,7 +5351,7 @@
 }
 
 int
-gdbarch_in_solib_return_trampoline (struct gdbarch *gdbarch, CORE_ADDR pc, char *name)
+gdbarch_in_solib_return_trampoline (struct gdbarch *gdbarch, CORE_ADDR pc, const char *name)
 {
   gdb_assert (gdbarch != NULL);
   if (gdbarch->in_solib_return_trampoline == 0)
@@ -5370,7 +5370,8 @@
 }
 
 int
-gdbarch_pc_in_sigtramp (struct gdbarch *gdbarch, CORE_ADDR pc, char *name)
+gdbarch_pc_in_sigtramp (struct gdbarch *gdbarch, CORE_ADDR pc,
+			const char *name)
 {
   gdb_assert (gdbarch != NULL);
   if (gdbarch->pc_in_sigtramp == 0)
diff --git a/gdb/gdbarch.h b/gdb/gdbarch.h
index 1a8e386..d569290 100644
--- a/gdb/gdbarch.h
+++ b/gdb/gdbarch.h
@@ -2845,8 +2845,8 @@
 #define IN_SOLIB_CALL_TRAMPOLINE(pc, name) (generic_in_solib_call_trampoline (pc, name))
 #endif
 
-typedef int (gdbarch_in_solib_call_trampoline_ftype) (CORE_ADDR pc, char *name);
-extern int gdbarch_in_solib_call_trampoline (struct gdbarch *gdbarch, CORE_ADDR pc, char *name);
+typedef int (gdbarch_in_solib_call_trampoline_ftype) (CORE_ADDR pc, const char *name);
+extern int gdbarch_in_solib_call_trampoline (struct gdbarch *gdbarch, CORE_ADDR pc, const char *name);
 extern void set_gdbarch_in_solib_call_trampoline (struct gdbarch *gdbarch, gdbarch_in_solib_call_trampoline_ftype *in_solib_call_trampoline);
 #if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (IN_SOLIB_CALL_TRAMPOLINE)
 #error "Non multi-arch definition of IN_SOLIB_CALL_TRAMPOLINE"
@@ -2864,8 +2864,8 @@
 #define IN_SOLIB_RETURN_TRAMPOLINE(pc, name) (generic_in_solib_return_trampoline (pc, name))
 #endif
 
-typedef int (gdbarch_in_solib_return_trampoline_ftype) (CORE_ADDR pc, char *name);
-extern int gdbarch_in_solib_return_trampoline (struct gdbarch *gdbarch, CORE_ADDR pc, char *name);
+typedef int (gdbarch_in_solib_return_trampoline_ftype) (CORE_ADDR pc, const char *name);
+extern int gdbarch_in_solib_return_trampoline (struct gdbarch *gdbarch, CORE_ADDR pc, const char *name);
 extern void set_gdbarch_in_solib_return_trampoline (struct gdbarch *gdbarch, gdbarch_in_solib_return_trampoline_ftype *in_solib_return_trampoline);
 #if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (IN_SOLIB_RETURN_TRAMPOLINE)
 #error "Non multi-arch definition of IN_SOLIB_RETURN_TRAMPOLINE"
@@ -2902,8 +2902,8 @@
 #define PC_IN_SIGTRAMP(pc, name) (legacy_pc_in_sigtramp (pc, name))
 #endif
 
-typedef int (gdbarch_pc_in_sigtramp_ftype) (CORE_ADDR pc, char *name);
-extern int gdbarch_pc_in_sigtramp (struct gdbarch *gdbarch, CORE_ADDR pc, char *name);
+typedef int (gdbarch_pc_in_sigtramp_ftype) (CORE_ADDR pc, const char *name);
+extern int gdbarch_pc_in_sigtramp (struct gdbarch *gdbarch, CORE_ADDR pc, const char *name);
 extern void set_gdbarch_pc_in_sigtramp (struct gdbarch *gdbarch, gdbarch_pc_in_sigtramp_ftype *pc_in_sigtramp);
 #if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (PC_IN_SIGTRAMP)
 #error "Non multi-arch definition of PC_IN_SIGTRAMP"
diff --git a/gdb/gdbarch.sh b/gdb/gdbarch.sh
index 16165a9..632edfe 100755
--- a/gdb/gdbarch.sh
+++ b/gdb/gdbarch.sh
@@ -658,10 +658,10 @@
 # For SVR4 shared libraries, each call goes through a small piece of
 # trampoline code in the ".plt" section.  IN_SOLIB_CALL_TRAMPOLINE evaluates
 # to nonzero if we are currently stopped in one of these.
-f:2:IN_SOLIB_CALL_TRAMPOLINE:int:in_solib_call_trampoline:CORE_ADDR pc, char *name:pc, name:::generic_in_solib_call_trampoline::0
+f:2:IN_SOLIB_CALL_TRAMPOLINE:int:in_solib_call_trampoline:CORE_ADDR pc, const char *name:pc, name:::generic_in_solib_call_trampoline::0
 
 # Some systems also have trampoline code for returning from shared libs.
-f:2:IN_SOLIB_RETURN_TRAMPOLINE:int:in_solib_return_trampoline:CORE_ADDR pc, char *name:pc, name:::generic_in_solib_return_trampoline::0
+f:2:IN_SOLIB_RETURN_TRAMPOLINE:int:in_solib_return_trampoline:CORE_ADDR pc, char *const name:pc, name:::generic_in_solib_return_trampoline::0
 
 # Sigtramp is a routine that the kernel calls (which then calls the
 # signal handler).  On most machines it is a library routine that is
@@ -683,7 +683,7 @@
 # FIXME: cagney/2002-04-21: PC_IN_SIGTRAMP is something of a mess.
 # Some code also depends on SIGTRAMP_START and SIGTRAMP_END but other
 # does not.
-f:2:PC_IN_SIGTRAMP:int:pc_in_sigtramp:CORE_ADDR pc, char *name:pc, name:::legacy_pc_in_sigtramp::0
+f:2:PC_IN_SIGTRAMP:int:pc_in_sigtramp:CORE_ADDR pc, const char *name:pc, name:::legacy_pc_in_sigtramp::0
 F:2:SIGTRAMP_START:CORE_ADDR:sigtramp_start:CORE_ADDR pc:pc
 F:2:SIGTRAMP_END:CORE_ADDR:sigtramp_end:CORE_ADDR pc:pc
 # A target might have problems with watchpoints as soon as the stack
diff --git a/gdb/gdbcmd.h b/gdb/gdbcmd.h
index 8c4490e..a7b019c 100644
--- a/gdb/gdbcmd.h
+++ b/gdb/gdbcmd.h
@@ -110,7 +110,7 @@
 
 extern struct cmd_list_element *showchecklist;
 
-extern void execute_command (char *, int);
+extern void execute_command (const char *, int);
 
 enum command_control_type execute_control_command (struct command_line *);
 
diff --git a/gdb/gdbcore.h b/gdb/gdbcore.h
index e03ebf4..0aad7fa 100644
--- a/gdb/gdbcore.h
+++ b/gdb/gdbcore.h
@@ -96,14 +96,14 @@
 
 /* Hook for `exec_file_command' command to call.  */
 
-extern void (*exec_file_display_hook) (char *filename);
+extern void (*exec_file_display_hook) (const char *filename);
 
 /* Hook for "file_command", which is more useful than above
    (because it is invoked AFTER symbols are read, not before) */
 
-extern void (*file_changed_hook) (char *filename);
+extern void (*file_changed_hook) (const char *filename);
 
-extern void specify_exec_file_hook (void (*hook) (char *filename));
+extern void specify_exec_file_hook (void (*hook) (const char *filename));
 
 /* Binary File Diddlers for the exec and core files */
 
@@ -114,11 +114,11 @@
 
 extern int write_files;
 
-extern void core_file_command (char *filename, int from_tty);
+extern void core_file_command (const char *filename, int from_tty);
 
-extern void exec_open (char *filename, int from_tty);
+extern void exec_open (const char *filename, int from_tty);
 
-extern void exec_file_attach (char *filename, int from_tty);
+extern void exec_file_attach (const char *filename, int from_tty);
 
 extern void exec_file_clear (int from_tty);
 
diff --git a/gdb/hpux-thread.c b/gdb/hpux-thread.c
index 7a7b741..02f5acd 100644
--- a/gdb/hpux-thread.c
+++ b/gdb/hpux-thread.c
@@ -294,7 +294,7 @@
 	    /* Flags must be 0 to avoid bogus value for SS_INSYSCALL */
 	    memset (buf, '\000', REGISTER_RAW_SIZE (regno));
 	  else if (regno == SP_REGNUM)
-	    store_address (buf, sizeof sp, sp);
+	    store_unsigned_integer (buf, sizeof sp, sp);
 	  else if (regno == PC_REGNUM)
 	    read_memory (sp - 20, buf, REGISTER_RAW_SIZE (regno));
 	  else
diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c
index 5cf63b4..66d697d 100644
--- a/gdb/i386-tdep.c
+++ b/gdb/i386-tdep.c
@@ -864,7 +864,7 @@
       char buf[4];
 
       sp -= 4;
-      store_address (buf, 4, struct_addr);
+      store_unsigned_integer (buf, 4, struct_addr);
       write_memory (sp, buf, 4);
     }
 
diff --git a/gdb/i386nbsd-tdep.c b/gdb/i386nbsd-tdep.c
index 64b3dc0..7d3fd73 100644
--- a/gdb/i386nbsd-tdep.c
+++ b/gdb/i386nbsd-tdep.c
@@ -232,7 +232,7 @@
 }
 
 static int
-i386nbsd_pc_in_sigtramp (CORE_ADDR pc, char *name)
+i386nbsd_pc_in_sigtramp (CORE_ADDR pc, const char *name)
 {
   return (nbsd_pc_in_sigtramp (pc, name)
 	  || i386nbsd_sigtramp_offset (pc) >= 0);
diff --git a/gdb/ia64-tdep.c b/gdb/ia64-tdep.c
index ce9b26c..2713046 100644
--- a/gdb/ia64-tdep.c
+++ b/gdb/ia64-tdep.c
@@ -1239,13 +1239,13 @@
   if (regnum == SP_REGNUM && get_next_frame (frame))
     {
       /* Handle SP values for all frames but the topmost. */
-      store_address (raw_buffer, REGISTER_RAW_SIZE (regnum),
-		     get_frame_base (frame));
+      store_unsigned_integer (raw_buffer, REGISTER_RAW_SIZE (regnum),
+			      get_frame_base (frame));
     }
   else if (regnum == IA64_BSP_REGNUM)
     {
-      store_address (raw_buffer, REGISTER_RAW_SIZE (regnum), 
-                     get_frame_extra_info (frame)->bsp);
+      store_unsigned_integer (raw_buffer, REGISTER_RAW_SIZE (regnum), 
+			      get_frame_extra_info (frame)->bsp);
     }
   else if (regnum == IA64_VFP_REGNUM)
     {
@@ -1255,7 +1255,7 @@
 	 still provide a value since we know the size of the frame */
       CORE_ADDR vfp = (get_frame_base (frame)
 		       + get_frame_extra_info (frame)->mem_stack_frame_size);
-      store_address (raw_buffer, REGISTER_RAW_SIZE (IA64_VFP_REGNUM), vfp);
+      store_unsigned_integer (raw_buffer, REGISTER_RAW_SIZE (IA64_VFP_REGNUM), vfp);
     }
   else if (IA64_PR0_REGNUM <= regnum && regnum <= IA64_PR63_REGNUM)
     {
@@ -1338,7 +1338,7 @@
         {
 	  pc = read_pc ();
 	}
-      store_address (raw_buffer, REGISTER_RAW_SIZE (IA64_IP_REGNUM), pc);
+      store_unsigned_integer (raw_buffer, REGISTER_RAW_SIZE (IA64_IP_REGNUM), pc);
     }
   else if (IA64_GR32_REGNUM <= regnum && regnum <= IA64_GR127_REGNUM)
     {
@@ -1769,8 +1769,8 @@
       if (global_pointer == 0)
 	global_pointer = read_register (IA64_GR1_REGNUM);
 
-      store_address (buf, 8, faddr);
-      store_address (buf + 8, 8, global_pointer);
+      store_unsigned_integer (buf, 8, faddr);
+      store_unsigned_integer (buf + 8, 8, global_pointer);
 
       write_memory (fdesc, buf, 16);
     }
@@ -1862,9 +1862,9 @@
 	{
 	  char val_buf[8];
 
-	  store_address (val_buf, 8,
-	    find_func_descr (extract_address (VALUE_CONTENTS (arg), 8),
-	                     &funcdescaddr));
+	  store_unsigned_integer (val_buf, 8,
+				  find_func_descr (extract_address (VALUE_CONTENTS (arg), 8),
+						   &funcdescaddr));
 	  if (slotnum < rseslots)
 	    write_memory (rse_address_add (bsp, slotnum), val_buf, 8);
 	  else
@@ -1920,9 +1920,9 @@
   /* Store the struct return value in r8 if necessary. */
   if (struct_return)
     {
-      store_address (&deprecated_registers[REGISTER_BYTE (IA64_GR8_REGNUM)],
-                     REGISTER_RAW_SIZE (IA64_GR8_REGNUM),
-		     struct_addr);
+      store_unsigned_integer (&deprecated_registers[REGISTER_BYTE (IA64_GR8_REGNUM)],
+			      REGISTER_RAW_SIZE (IA64_GR8_REGNUM),
+			      struct_addr);
     }
 
   /* Sync gdb's idea of what the registers are with the target. */
diff --git a/gdb/infcall.c b/gdb/infcall.c
index 5f80e89..eb13f9a 100644
--- a/gdb/infcall.c
+++ b/gdb/infcall.c
@@ -599,7 +599,7 @@
 		       type pointer to function or just a function.  */
 		    if (args[i]->lval == not_lval)
 		      {
-			char *arg_name;
+			const char *arg_name;
 			if (find_pc_partial_function ((CORE_ADDR) args[i]->aligner.contents[0], &arg_name, NULL, NULL))
 			  error ("\
 You cannot use function <%s> as argument. \n\
diff --git a/gdb/infcmd.c b/gdb/infcmd.c
index de6c319..7219b09 100644
--- a/gdb/infcmd.c
+++ b/gdb/infcmd.c
@@ -47,21 +47,21 @@
 
 /* Functions exported for general use, in inferior.h: */
 
-void all_registers_info (char *, int);
+void all_registers_info (const char *, int);
 
-void registers_info (char *, int);
+void registers_info (const char *, int);
 
-void nexti_command (char *, int);
+void nexti_command (const char *, int);
 
-void stepi_command (char *, int);
+void stepi_command (const char *, int);
 
-void continue_command (char *, int);
+void continue_command (const char *, int);
 
-void interrupt_target_command (char *args, int from_tty);
+void interrupt_target_command (const char *args, int from_tty);
 
 /* Local functions: */
 
-static void nofp_registers_info (char *, int);
+static void nofp_registers_info (const char *, int);
 
 static void print_return_value (int struct_return, struct type *value_type);
 
@@ -69,47 +69,47 @@
 
 static void until_next_command (int);
 
-static void until_command (char *, int);
+static void until_command (const char *, int);
 
-static void path_info (char *, int);
+static void path_info (const char *, int);
 
-static void path_command (char *, int);
+static void path_command (const char *, int);
 
-static void unset_command (char *, int);
+static void unset_command (const char *, int);
 
-static void float_info (char *, int);
+static void float_info (const char *, int);
 
-static void detach_command (char *, int);
+static void detach_command (const char *, int);
 
-static void unset_environment_command (char *, int);
+static void unset_environment_command (const char *, int);
 
-static void set_environment_command (char *, int);
+static void set_environment_command (const char *, int);
 
-static void environment_info (char *, int);
+static void environment_info (const char *, int);
 
-static void program_info (char *, int);
+static void program_info (const char *, int);
 
-static void finish_command (char *, int);
+static void finish_command (const char *, int);
 
-static void signal_command (char *, int);
+static void signal_command (const char *, int);
 
-static void jump_command (char *, int);
+static void jump_command (const char *, int);
 
-static void step_1 (int, int, char *);
+static void step_1 (int, int, const char *);
 static void step_once (int skip_subroutines, int single_inst, int count);
 static void step_1_continuation (struct continuation_arg *arg);
 
-static void next_command (char *, int);
+static void next_command (const char *, int);
 
-static void step_command (char *, int);
+static void step_command (const char *, int);
 
-static void run_command (char *, int);
+static void run_command (const char *, int);
 
-static void run_no_args_command (char *args, int from_tty);
+static void run_no_args_command (const char *args, int from_tty);
 
-static void go_command (char *line_no, int from_tty);
+static void go_command (const char *line_no, int from_tty);
 
-static int strip_bg_char (char **);
+static int strip_bg_char (const char **);
 
 void _initialize_infcmd (void);
 
@@ -242,7 +242,7 @@
 
 /* Notice when `set args' is run.  */
 static void
-notice_args_set (char *args, int from_tty, struct cmd_list_element *c)
+notice_args_set (const char *args, int from_tty, struct cmd_list_element *c)
 {
   inferior_argc = 0;
   inferior_argv = 0;
@@ -250,7 +250,7 @@
 
 /* Notice when `show args' is run.  */
 static void
-notice_args_read (char *args, int from_tty, struct cmd_list_element *c)
+notice_args_read (const char *args, int from_tty, struct cmd_list_element *c)
 {
   /* Might compute the value.  */
   get_inferior_args ();
@@ -343,7 +343,7 @@
    of a command. If it has, it removes it and returns 1. Otherwise it
    does nothing and returns 0. */
 static int
-strip_bg_char (char **args)
+strip_bg_char (const char **args)
 {
   char *p = NULL;
 
@@ -370,7 +370,7 @@
 
 /* ARGSUSED */
 void
-tty_command (char *file, int from_tty)
+tty_command (const char *file, int from_tty)
 {
   if (file == 0)
     error_no_arg ("terminal name for running target process");
@@ -379,7 +379,7 @@
 }
 
 static void
-run_command (char *args, int from_tty)
+run_command (const char *args, int from_tty)
 {
   char *exec_file;
 
@@ -477,7 +477,7 @@
 
 
 static void
-run_no_args_command (char *args, int from_tty)
+run_no_args_command (const char *args, int from_tty)
 {
   char *old_args = set_inferior_args (xstrdup (""));
   xfree (old_args);
@@ -485,7 +485,7 @@
 
 
 void
-continue_command (char *proc_count_exp, int from_tty)
+continue_command (const char *proc_count_exp, int from_tty)
 {
   int async_exec = 0;
   ERROR_NO_INFERIOR;
@@ -543,7 +543,7 @@
 
 /* ARGSUSED */
 static void
-step_command (char *count_string, int from_tty)
+step_command (const char *count_string, int from_tty)
 {
   step_1 (0, 0, count_string);
 }
@@ -552,7 +552,7 @@
 
 /* ARGSUSED */
 static void
-next_command (char *count_string, int from_tty)
+next_command (const char *count_string, int from_tty)
 {
   step_1 (1, 0, count_string);
 }
@@ -561,14 +561,14 @@
 
 /* ARGSUSED */
 void
-stepi_command (char *count_string, int from_tty)
+stepi_command (const char *count_string, int from_tty)
 {
   step_1 (0, 1, count_string);
 }
 
 /* ARGSUSED */
 void
-nexti_command (char *count_string, int from_tty)
+nexti_command (const char *count_string, int from_tty)
 {
   step_1 (1, 1, count_string);
 }
@@ -580,7 +580,7 @@
 }
 
 static void
-step_1 (int skip_subroutines, int single_inst, char *count_string)
+step_1 (int skip_subroutines, int single_inst, const char *count_string)
 {
   register int count = 1;
   struct frame_info *frame;
@@ -634,7 +634,7 @@
 	      find_pc_line_pc_range (stop_pc, &step_range_start, &step_range_end);
 	      if (step_range_end == 0)
 		{
-		  char *name;
+		  const char *name;
 		  if (find_pc_partial_function (stop_pc, &name, &step_range_start,
 						&step_range_end) == 0)
 		    error ("Cannot find bounds of current function");
@@ -755,7 +755,7 @@
 	    }
 	  else if (step_range_end == 0)
 	    {
-	      char *name;
+	      const char *name;
 	      if (find_pc_partial_function (stop_pc, &name, &step_range_start,
 					    &step_range_end) == 0)
 		error ("Cannot find bounds of current function");
@@ -802,7 +802,7 @@
 /* Continue program at specified address.  */
 
 static void
-jump_command (char *arg, int from_tty)
+jump_command (const char *arg, int from_tty)
 {
   register CORE_ADDR addr;
   struct symtabs_and_lines sals;
@@ -890,7 +890,7 @@
 
 /* Go to line or address in current procedure */
 static void
-go_command (char *line_no, int from_tty)
+go_command (const char *line_no, int from_tty)
 {
   if (line_no == (char *) NULL || !*line_no)
     printf_filtered (GO_USAGE);
@@ -905,7 +905,7 @@
 /* Continue program giving it specified signal.  */
 
 static void
-signal_command (char *signum_exp, int from_tty)
+signal_command (const char *signum_exp, int from_tty)
 {
   enum target_signal oursig;
 
@@ -1004,7 +1004,7 @@
 }
 
 static void
-until_command (char *arg, int from_tty)
+until_command (const char *arg, int from_tty)
 {
   int async_exec = 0;
 
@@ -1035,7 +1035,7 @@
 }
 
 static void
-advance_command (char *arg, int from_tty)
+advance_command (const char *arg, int from_tty)
 {
   int async_exec = 0;
 
@@ -1161,7 +1161,7 @@
    the selected frame will return to, then continue.  */
 
 static void
-finish_command (char *arg, int from_tty)
+finish_command (const char *arg, int from_tty)
 {
   struct symtab_and_line sal;
   register struct frame_info *frame;
@@ -1288,7 +1288,7 @@
 
 /* ARGSUSED */
 static void
-program_info (char *args, int from_tty)
+program_info (const char *args, int from_tty)
 {
   bpstat bs = stop_bpstat;
   int num = bpstat_num (&bs);
@@ -1335,7 +1335,7 @@
 }
 
 static void
-environment_info (char *var, int from_tty)
+environment_info (const char *var, int from_tty)
 {
   if (var)
     {
@@ -1366,9 +1366,11 @@
 }
 
 static void
-set_environment_command (char *arg, int from_tty)
+set_environment_command (const char *arg, int from_tty)
 {
-  register char *p, *val, *var;
+  const char *p;
+  const char *val;
+  char *var;
   int nullset = 0;
 
   if (arg == 0)
@@ -1428,7 +1430,7 @@
 }
 
 static void
-unset_environment_command (char *var, int from_tty)
+unset_environment_command (const char *var, int from_tty)
 {
   if (var == 0)
     {
@@ -1450,7 +1452,7 @@
 
 /* ARGSUSED */
 static void
-path_info (char *args, int from_tty)
+path_info (const char *args, int from_tty)
 {
   puts_filtered ("Executable and object file path: ");
   puts_filtered (get_in_environ (inferior_environ, path_var_name));
@@ -1460,7 +1462,7 @@
 /* Add zero or more directories to the front of the execution path.  */
 
 static void
-path_command (char *dirname, int from_tty)
+path_command (const char *dirname, int from_tty)
 {
   char *exec_path;
   char *env;
@@ -1603,7 +1605,7 @@
 }
 
 void
-registers_info (char *addr_exp, int fpregs)
+registers_info (const char *addr_exp, int fpregs)
 {
   int regnum, numregs;
   register char *end;
@@ -1622,7 +1624,7 @@
 
   while (*addr_exp != '\0')
     {
-      char *start;
+      const char *start;
       const char *end;
 
       /* Keep skipping leading white space.  */
@@ -1706,13 +1708,13 @@
 }
 
 void
-all_registers_info (char *addr_exp, int from_tty)
+all_registers_info (const char *addr_exp, int from_tty)
 {
   registers_info (addr_exp, 1);
 }
 
 static void
-nofp_registers_info (char *addr_exp, int from_tty)
+nofp_registers_info (const char *addr_exp, int from_tty)
 {
   registers_info (addr_exp, 0);
 }
@@ -1747,7 +1749,7 @@
 }
 
 static void
-vector_info (char *args, int from_tty)
+vector_info (const char *args, int from_tty)
 {
   print_vector_info (current_gdbarch, gdb_stdout, deprecated_selected_frame, args);
 }
@@ -1770,7 +1772,7 @@
    and wait for the trace-trap that results from attaching.  */
 
 void
-attach_command (char *args, int from_tty)
+attach_command (const char *args, int from_tty)
 {
   char *exec_file;
   char *full_exec_path = NULL;
@@ -1865,7 +1867,7 @@
  */
 
 static void
-detach_command (char *args, int from_tty)
+detach_command (const char *args, int from_tty)
 {
   dont_repeat ();		/* Not for the faint of heart */
   target_detach (args, from_tty);
@@ -1879,7 +1881,7 @@
 /* Stop the execution of the target while running in async mode, in
    the backgound. */
 void
-interrupt_target_command (char *args, int from_tty)
+interrupt_target_command (const char *args, int from_tty)
 {
   if (event_loop_p && target_can_async_p ())
     {
@@ -1920,14 +1922,14 @@
 }
 
 static void
-float_info (char *args, int from_tty)
+float_info (const char *args, int from_tty)
 {
   print_float_info (current_gdbarch, gdb_stdout, deprecated_selected_frame, args);
 }
 
 /* ARGSUSED */
 static void
-unset_command (char *args, int from_tty)
+unset_command (const char *args, int from_tty)
 {
   printf_filtered ("\"unset\" must be followed by the name of ");
   printf_filtered ("an unset subcommand.\n");
diff --git a/gdb/inferior.h b/gdb/inferior.h
index 1de3b25..73c2608 100644
--- a/gdb/inferior.h
+++ b/gdb/inferior.h
@@ -221,9 +221,9 @@
 
 extern void solib_create_inferior_hook (void);
 
-extern void child_terminal_info (char *, int);
+extern void child_terminal_info (const char *, int);
 
-extern void term_info (char *, int);
+extern void term_info (const char *, int);
 
 extern void terminal_ours_for_output (void);
 
@@ -300,9 +300,9 @@
 
 /* From infcmd.c */
 
-extern void tty_command (char *, int);
+extern void tty_command (const char *, int);
 
-extern void attach_command (char *, int);
+extern void attach_command (const char *, int);
 
 extern char *get_inferior_args (void);
 
@@ -310,15 +310,15 @@
 
 extern void set_inferior_args_vector (int, char **);
 
-extern void registers_info (char *, int);
+extern void registers_info (const char *, int);
 
-extern void nexti_command (char *, int);
+extern void nexti_command (const char *, int);
 
-extern void stepi_command (char *, int);
+extern void stepi_command (const char *, int);
 
-extern void continue_command (char *, int);
+extern void continue_command (const char *, int);
 
-extern void interrupt_target_command (char *args, int from_tty);
+extern void interrupt_target_command (const char *args, int from_tty);
 
 /* Last signal that the inferior received (why it stopped).  */
 
diff --git a/gdb/inflow.c b/gdb/inflow.c
index 2a41f57..d91a5f4 100644
--- a/gdb/inflow.c
+++ b/gdb/inflow.c
@@ -49,7 +49,7 @@
 
 static void pass_signal (int);
 
-static void kill_command (char *, int);
+static void kill_command (const char *, int);
 
 static void terminal_ours_1 (int);
 
@@ -414,14 +414,14 @@
 
 /* ARGSUSED */
 void
-term_info (char *arg, int from_tty)
+term_info (const char *arg, int from_tty)
 {
   target_terminal_info (arg, from_tty);
 }
 
 /* ARGSUSED */
 void
-child_terminal_info (char *args, int from_tty)
+child_terminal_info (const char *args, int from_tty)
 {
   if (!gdb_has_a_terminal ())
     {
@@ -574,7 +574,7 @@
 
 /* ARGSUSED */
 static void
-kill_command (char *arg, int from_tty)
+kill_command (const char *arg, int from_tty)
 {
   /* FIXME:  This should not really be inferior_ptid (or target_has_execution).
      It should be a distinct flag that indicates that a target is active, cuz
diff --git a/gdb/infptrace.c b/gdb/infptrace.c
index 1225dd8..5d1d3eb 100644
--- a/gdb/infptrace.c
+++ b/gdb/infptrace.c
@@ -102,7 +102,7 @@
 #endif /* !FETCH_INFERIOR_REGISTERS */
 
 #if !defined (CHILD_XFER_MEMORY)
-static void udot_info (char *, int);
+static void udot_info (const char *, int);
 #endif
 
 #if !defined (FETCH_INFERIOR_REGISTERS)
@@ -626,7 +626,7 @@
 
 
 static void
-udot_info (char *dummy1, int dummy2)
+udot_info (const char *dummy1, int dummy2)
 {
 #if defined (KERNEL_U_SIZE)
   long udot_off;			/* Offset into user struct */
diff --git a/gdb/infrun.c b/gdb/infrun.c
index df17968..f052770 100644
--- a/gdb/infrun.c
+++ b/gdb/infrun.c
@@ -47,9 +47,9 @@
 
 /* Prototypes for local functions */
 
-static void signals_info (char *, int);
+static void signals_info (const char *, int);
 
-static void handle_command (char *, int);
+static void handle_command (const char *, int);
 
 static void sig_print_info (enum target_signal);
 
@@ -70,14 +70,14 @@
 
 static int follow_fork (void);
 
-static void set_schedlock_func (char *args, int from_tty,
+static void set_schedlock_func (const char *args, int from_tty,
 				struct cmd_list_element *c);
 
 struct execution_control_state;
 
 static int currently_stepping (struct execution_control_state *ecs);
 
-static void xdb_handle_command (char *args, int from_tty);
+static void xdb_handle_command (const char *args, int from_tty);
 
 void _initialize_infrun (void);
 
@@ -512,7 +512,7 @@
 };
 
 static void
-set_schedlock_func (char *args, int from_tty, struct cmd_list_element *c)
+set_schedlock_func (const char *args, int from_tty, struct cmd_list_element *c)
 {
   /* NOTE: cagney/2002-03-17: The add_show_from_set() function clones
      the set command passed as a parameter.  The clone operation will
@@ -924,7 +924,7 @@
   int random_signal;
   CORE_ADDR stop_func_start;
   CORE_ADDR stop_func_end;
-  char *stop_func_name;
+  const char *stop_func_name;
   struct symtab_and_line sal;
   int remove_breakpoints_on_following_step;
   int current_line;
@@ -1190,7 +1190,7 @@
 static int
 pc_in_sigtramp (CORE_ADDR pc)
 {
-  char *name;
+  const char *name;
   find_pc_partial_function (pc, &name, NULL, NULL);
   return PC_IN_SIGTRAMP (pc, name);
 }
@@ -3247,7 +3247,7 @@
 /* Specify how various signals in the inferior should be handled.  */
 
 static void
-handle_command (char *args, int from_tty)
+handle_command (const char *args, int from_tty)
 {
   char **argv;
   int digits, wordlen;
@@ -3427,7 +3427,7 @@
 }
 
 static void
-xdb_handle_command (char *args, int from_tty)
+xdb_handle_command (const char *args, int from_tty)
 {
   char **argv;
   struct cleanup *old_chain;
@@ -3499,7 +3499,7 @@
    targets, all signals should be in the signal tables).  */
 
 static void
-signals_info (char *signum_exp, int from_tty)
+signals_info (const char *signum_exp, int from_tty)
 {
   enum target_signal oursig;
   sig_print_header ();
diff --git a/gdb/inftarg.c b/gdb/inftarg.c
index 7786579..0aaa0c5 100644
--- a/gdb/inftarg.c
+++ b/gdb/inftarg.c
@@ -57,13 +57,13 @@
 void child_post_wait (ptid_t, int);
 #endif
 
-static void child_open (char *, int);
+static void child_open (const char *, int);
 
 static void child_files_info (struct target_ops *);
 
-static void child_detach (char *, int);
+static void child_detach (const char *, int);
 
-static void child_attach (char *, int);
+static void child_attach (const char *, int);
 
 #if !defined(CHILD_POST_ATTACH)
 extern void child_post_attach (int);
@@ -192,7 +192,7 @@
 /* Attach to process PID, then initialize for debugging it.  */
 
 static void
-child_attach (char *args, int from_tty)
+child_attach (const char *args, int from_tty)
 {
   if (!args)
     error_no_arg ("process-id to attach");
@@ -203,7 +203,7 @@
   {
     char *exec_file;
     int pid;
-    char *dummy;
+    const char *dummy;
 
     dummy = args;
     pid = strtol (args, &dummy, 0);
@@ -254,7 +254,7 @@
    started via the normal ptrace (PTRACE_TRACEME).  */
 
 static void
-child_detach (char *args, int from_tty)
+child_detach (const char *args, int from_tty)
 {
 #ifdef ATTACH_DETACH
   {
@@ -308,7 +308,7 @@
 
 /* ARGSUSED */
 static void
-child_open (char *arg, int from_tty)
+child_open (const char *arg, int from_tty)
 {
   error ("Use the \"run\" command to start a Unix child process.");
 }
diff --git a/gdb/interps.c b/gdb/interps.c
index 748b5b6..e493923 100644
--- a/gdb/interps.c
+++ b/gdb/interps.c
@@ -358,7 +358,7 @@
 }
 
 void
-interpreter_exec_cmd (char *args, int from_tty)
+interpreter_exec_cmd (const char *args, int from_tty)
 {
   struct interp *old_interp, *interp_to_use;
   char **prules = NULL;
diff --git a/gdb/kod-cisco.c b/gdb/kod-cisco.c
index de2b450..79a8224 100644
--- a/gdb/kod-cisco.c
+++ b/gdb/kod-cisco.c
@@ -106,7 +106,7 @@
    querying the Cisco kernel: we ask for a dump of everything, and
    it returns it.  */
 void
-cisco_kod_request (char *arg, int from_tty)
+cisco_kod_request (const char *arg, int from_tty)
 {
   char buffer[PBUFSIZ], command[PBUFSIZ];
   int done = 0, i;
diff --git a/gdb/kod.c b/gdb/kod.c
index 8f565bb..ae57e9a 100644
--- a/gdb/kod.c
+++ b/gdb/kod.c
@@ -31,7 +31,7 @@
 void _initialize_kod (void);
 
 /* Prototypes for local functions.  */
-static void info_kod_command (char *, int);
+static void info_kod_command (const char *, int);
 static void load_kod_library (char *);
 
 /* Prototypes for callbacks.  These are passed into the KOD modules.  */
@@ -63,7 +63,7 @@
 
 static char *(*gdb_kod_open) (kod_display_callback_ftype *display,
 			      kod_query_callback_ftype *query);
-static void (*gdb_kod_request) (char *, int);
+static void (*gdb_kod_request) (const char *, int);
 static void (*gdb_kod_close) ();
 
 
@@ -128,7 +128,7 @@
    subcommand which is what the user actually uses to query the OS.  */
 
 static void
-kod_set_os (char *arg, int from_tty, struct cmd_list_element *command)
+kod_set_os (const char *arg, int from_tty, struct cmd_list_element *command)
 {
   char *p;
 
@@ -194,7 +194,7 @@
    argument is empty.  */
 
 static void
-info_kod_command (char *arg, int from_tty)
+info_kod_command (const char *arg, int from_tty)
 {
   (*gdb_kod_request) (arg, from_tty);
 }
diff --git a/gdb/kod.h b/gdb/kod.h
index 6c4d03a..2800b51 100644
--- a/gdb/kod.h
+++ b/gdb/kod.h
@@ -54,7 +54,7 @@
    the Cisco kernel: we ask for a dump of everything, and it returns
    it.  */
 
-extern void cisco_kod_request (char *arg, int from_tty);
+extern void cisco_kod_request (const char *arg, int from_tty);
 
 extern void cisco_kod_close (void);
 
diff --git a/gdb/language.c b/gdb/language.c
index 0a65094..9382c3d 100644
--- a/gdb/language.c
+++ b/gdb/language.c
@@ -48,21 +48,21 @@
 
 extern void _initialize_language (void);
 
-static void show_language_command (char *, int);
+static void show_language_command (const char *, int);
 
-static void set_language_command (char *, int);
+static void set_language_command (const char *, int);
 
-static void show_type_command (char *, int);
+static void show_type_command (const char *, int);
 
-static void set_type_command (char *, int);
+static void set_type_command (const char *, int);
 
-static void show_range_command (char *, int);
+static void show_range_command (const char *, int);
 
-static void set_range_command (char *, int);
+static void set_range_command (const char *, int);
 
-static void show_case_command (char *, int);
+static void show_case_command (const char *, int);
 
-static void set_case_command (char *, int);
+static void set_case_command (const char *, int);
 
 static void set_case_str (void);
 
@@ -76,9 +76,9 @@
 
 static int unk_lang_parser (void);
 
-static void show_check (char *, int);
+static void show_check (const char *, int);
 
-static void set_check (char *, int);
+static void set_check (const char *, int);
 
 static void set_type_range_case (void);
 
@@ -158,7 +158,7 @@
 /* Show command.  Display a warning if the language set
    does not match the frame. */
 static void
-show_language_command (char *ignore, int from_tty)
+show_language_command (const char *ignore, int from_tty)
 {
   enum language flang;		/* The language of the current frame */
 
@@ -171,7 +171,7 @@
 
 /* Set command.  Change the current working language. */
 static void
-set_language_command (char *ignore, int from_tty)
+set_language_command (const char *ignore, int from_tty)
 {
   int i;
   enum language flang;
@@ -243,7 +243,7 @@
 /* Show command.  Display a warning if the type setting does
    not match the current language. */
 static void
-show_type_command (char *ignore, int from_tty)
+show_type_command (const char *ignore, int from_tty)
 {
   if (type_check != current_language->la_type_check)
     printf_unfiltered (
@@ -252,7 +252,7 @@
 
 /* Set command.  Change the setting for type checking. */
 static void
-set_type_command (char *ignore, int from_tty)
+set_type_command (const char *ignore, int from_tty)
 {
   if (STREQ (type, "on"))
     {
@@ -288,7 +288,7 @@
 /* Show command.  Display a warning if the range setting does
    not match the current language. */
 static void
-show_range_command (char *ignore, int from_tty)
+show_range_command (const char *ignore, int from_tty)
 {
 
   if (range_check != current_language->la_range_check)
@@ -298,7 +298,7 @@
 
 /* Set command.  Change the setting for range checking. */
 static void
-set_range_command (char *ignore, int from_tty)
+set_range_command (const char *ignore, int from_tty)
 {
   if (STREQ (range, "on"))
     {
@@ -334,7 +334,7 @@
 /* Show command.  Display a warning if the case sensitivity setting does
    not match the current language. */
 static void
-show_case_command (char *ignore, int from_tty)
+show_case_command (const char *ignore, int from_tty)
 {
    if (case_sensitivity != current_language->la_case_sensitivity)
       printf_unfiltered(
@@ -343,7 +343,7 @@
 
 /* Set command.  Change the setting for case sensitivity. */
 static void
-set_case_command (char *ignore, int from_tty)
+set_case_command (const char *ignore, int from_tty)
 {
    if (STREQ (case_sensitive, "on"))
    {
@@ -1300,7 +1300,7 @@
 }
 
 static void
-set_check (char *ignore, int from_tty)
+set_check (const char *ignore, int from_tty)
 {
   printf_unfiltered (
      "\"set check\" must be followed by the name of a check subcommand.\n");
@@ -1308,7 +1308,7 @@
 }
 
 static void
-show_check (char *ignore, int from_tty)
+show_check (const char *ignore, int from_tty)
 {
   cmd_show_list (showchecklist, from_tty, "");
 }
diff --git a/gdb/linespec.c b/gdb/linespec.c
index ea52a80..3e4df68 100644
--- a/gdb/linespec.c
+++ b/gdb/linespec.c
@@ -44,29 +44,30 @@
 static void initialize_defaults (struct symtab **default_symtab,
 				 int *default_line);
 
-static void set_flags (char *arg, int *is_quoted, char **paren_pointer);
+static void set_flags (const char *arg, int *is_quoted, char **paren_pointer);
 
-static struct symtabs_and_lines decode_indirect (char **argptr);
+static struct symtabs_and_lines decode_indirect (const char **argptr);
 
-static char *locate_first_half (char **argptr, int *is_quote_enclosed);
+static const char *locate_first_half (const char **argptr,
+				      int *is_quote_enclosed);
 
-static struct symtabs_and_lines decode_objc (char **argptr,
+static struct symtabs_and_lines decode_objc (const char **argptr,
 					     int funfirstline,
 					     struct symtab *file_symtab,
 					     char ***canonical,
-					     char *saved_arg);
+					     const char *saved_arg);
 
-static struct symtabs_and_lines decode_compound (char **argptr,
+static struct symtabs_and_lines decode_compound (const char **argptr,
 						 int funfirstline,
 						 char ***canonical,
-						 char *saved_arg,
-						 char *p);
+						 const char *saved_arg,
+						 const char *p);
 
-static struct symbol *lookup_prefix_sym (char **argptr, char *p);
+static struct symbol *lookup_prefix_sym (const char **argptr, const char *p);
 
 static struct symtabs_and_lines find_method (int funfirstline,
 					     char ***canonical,
-					     char *saved_arg,
+					     const char *saved_arg,
 					     char *copy,
 					     struct type *t,
 					     struct symbol *sym_class);
@@ -85,21 +86,22 @@
 static void build_canonical_line_spec (struct symtab_and_line *,
 				       char *, char ***);
 
-static char *find_toplevel_char (char *s, char c);
+static const char *find_toplevel_char (const char *s, char c);
 
 static struct symtabs_and_lines decode_line_2 (struct symbol *[],
 					       int, int, char ***);
 
-static struct symtab *symtab_from_filename (char **argptr,
-					    char *p, int is_quote_enclosed);
+static struct symtab *symtab_from_filename (const char **argptr,
+					    const char *p,
+					    int is_quote_enclosed);
 
 static struct
-symtabs_and_lines decode_all_digits (char **argptr,
+symtabs_and_lines decode_all_digits (const char **argptr,
 				     struct symtab *default_symtab,
 				     int default_line,
 				     char ***canonical,
 				     struct symtab *file_symtab,
-				     char *q);
+				     const char *q);
 
 static struct symtabs_and_lines decode_dollar (char *copy,
 					       int funfirstline,
@@ -374,14 +376,14 @@
    strings.  Also, ignore the char within a template name, like a ','
    within foo<int, int>.  */
 
-static char *
-find_toplevel_char (char *s, char c)
+static const char *
+find_toplevel_char (const char *s, char c)
 {
   int quoted = 0;		/* zero if we're not in quotes;
 				   '"' if we're in a double-quoted string;
 				   '\'' if we're in a single-quoted string.  */
   int depth = 0;		/* Number of unclosed parens we've seen.  */
-  char *scan;
+  const char *scan;
 
   for (scan = s; *scan; scan++)
     {
@@ -579,11 +581,12 @@
    can use as appropriate instead of make_symbol_completion_list.  */
 
 struct symtabs_and_lines
-decode_line_1 (char **argptr, int funfirstline, struct symtab *default_symtab,
+decode_line_1 (const char **argptr, int funfirstline,
+	       struct symtab *default_symtab,
 	       int default_line, char ***canonical)
 {
-  char *p;
-  char *q;
+  const char *p;
+  const char *q;
   /* If a file name is specified, this is its symtab.  */
   struct symtab *file_symtab = NULL;
 
@@ -597,7 +600,7 @@
   /* Is part of *ARGPTR is enclosed in double quotes?  */
   int is_quote_enclosed;
   int is_objc_method = 0;
-  char *saved_arg = *argptr;
+  const char *saved_arg = *argptr;
 
   /* Defaults have defaults.  */
 
@@ -811,7 +814,7 @@
 }
 
 static void
-set_flags (char *arg, int *is_quoted, char **paren_pointer)
+set_flags (const char *arg, int *is_quoted, char **paren_pointer)
 {
   char *ii;
   int has_if = 0;
@@ -853,7 +856,7 @@
 /* Decode arg of the form *PC.  */
 
 static struct symtabs_and_lines
-decode_indirect (char **argptr)
+decode_indirect (const char **argptr)
 {
   struct symtabs_and_lines values;
   CORE_ADDR pc;
@@ -879,11 +882,12 @@
    enclosed in double quotes; if so, set is_quote_enclosed, advance
    ARGPTR past that and zero out the trailing double quote.  */
 
-static char *
-locate_first_half (char **argptr, int *is_quote_enclosed)
+static const char *
+locate_first_half (const char **argptr, int *is_quote_enclosed)
 {
-  char *ii;
-  char *p, *p1;
+  const char *ii;
+  const char *p;
+  const char *p1;
   int has_comma;
 
   /* Maybe we were called with a line range FILENAME:LINENUM,FILENAME:LINENUM
@@ -920,7 +924,7 @@
     {
       if (p[0] == '<')
 	{
-	  char *temp_end = find_template_name_end (p);
+	  const char *temp_end = find_template_name_end (p);
 	  if (!temp_end)
 	    error ("malformed template specification in command");
 	  p = temp_end;
@@ -983,13 +987,13 @@
    the existing C++ code to let the user choose one.  */
 
 struct symtabs_and_lines
-decode_objc (char **argptr, int funfirstline, struct symtab *file_symtab,
-	     char ***canonical, char *saved_arg)
+decode_objc (const char **argptr, int funfirstline, struct symtab *file_symtab,
+	     char ***canonical, const char *saved_arg)
 {
   struct symtabs_and_lines values;
   struct symbol **sym_arr = NULL;
   struct symbol *sym = NULL;
-  char *copy = NULL;
+  const char *copy = NULL;
   struct block *block = NULL;
   int i1 = 0;
   int i2 = 0;
@@ -1068,16 +1072,16 @@
    at the first component separator, i.e. double-colon or period.  */
 
 static struct symtabs_and_lines
-decode_compound (char **argptr, int funfirstline, char ***canonical,
-		 char *saved_arg, char *p)
+decode_compound (const char **argptr, int funfirstline, char ***canonical,
+		 const char *saved_arg, const char *p)
 {
   struct symtabs_and_lines values;
-  char *p2;
+  const char *p2;
 #if 0
   char *q, *q1;
 #endif
-  char *saved_arg2 = *argptr;
-  char *temp_end;
+  const char *saved_arg2 = *argptr;
+  const char *temp_end;
   struct symbol *sym;
   /* The symtab that SYM was found in.  */
   struct symtab *sym_symtab;
@@ -1234,9 +1238,9 @@
    whitespace.  */
 
 static struct symbol *
-lookup_prefix_sym (char **argptr, char *p)
+lookup_prefix_sym (const char **argptr, const char *p)
 {
-  char *p1;
+  const char *p1;
   char *copy;
 
   /* Extract the class name.  */
@@ -1261,7 +1265,7 @@
    symbol is SYM_CLASS.  */
 
 static struct symtabs_and_lines
-find_method (int funfirstline, char ***canonical, char *saved_arg,
+find_method (int funfirstline, char ***canonical, const char *saved_arg,
 	     char *copy, struct type *t, struct symbol *sym_class)
 {
   struct symtabs_and_lines values;
@@ -1361,9 +1365,10 @@
    of *ARGPTR ending at P, and advance ARGPTR past that filename.  */
 
 static struct symtab *
-symtab_from_filename (char **argptr, char *p, int is_quote_enclosed)
+symtab_from_filename (const char **argptr, const char *p,
+		      int is_quote_enclosed)
 {
-  char *p1;
+  const char *p1;
   char *copy;
   struct symtab *file_symtab;
   
@@ -1405,9 +1410,9 @@
    the other arguments are as usual.  */
 
 static struct symtabs_and_lines
-decode_all_digits (char **argptr, struct symtab *default_symtab,
+decode_all_digits (const char **argptr, struct symtab *default_symtab,
 		   int default_line, char ***canonical,
-		   struct symtab *file_symtab, char *q)
+		   struct symtab *file_symtab, const char *q)
 
 {
   struct symtabs_and_lines values;
diff --git a/gdb/linespec.h b/gdb/linespec.h
index 3ede4bd..8b3f44b 100644
--- a/gdb/linespec.h
+++ b/gdb/linespec.h
@@ -21,9 +21,10 @@
 
 struct symtab;
 
-extern struct symtabs_and_lines
-	decode_line_1 (char **argptr, int funfirstline,
-		       struct symtab *default_symtab, int default_line,
-		       char ***canonical);
+extern struct symtabs_and_lines decode_line_1 (const char **argptr,
+					       int funfirstline,
+					       struct symtab *default_symtab,
+					       int default_line,
+					       char ***canonical);
 
 #endif /* defined (LINESPEC_H) */
diff --git a/gdb/macrocmd.c b/gdb/macrocmd.c
index 02f44fc..93549e9 100644
--- a/gdb/macrocmd.c
+++ b/gdb/macrocmd.c
@@ -33,7 +33,7 @@
 static struct cmd_list_element *macrolist;
 
 static void
-macro_command (char *arg, int from_tty)
+macro_command (const char *arg, int from_tty)
 {
   printf_unfiltered
     ("\"macro\" must be followed by the name of a macro command.\n");
@@ -46,7 +46,7 @@
 
 
 static void
-macro_expand_command (char *exp, int from_tty)
+macro_expand_command (const char *exp, int from_tty)
 {
   struct macro_scope *ms = NULL;
   char *expanded = NULL;
@@ -82,7 +82,7 @@
 
 
 static void
-macro_expand_once_command (char *exp, int from_tty)
+macro_expand_once_command (const char *exp, int from_tty)
 {
   struct macro_scope *ms = NULL;
   char *expanded = NULL;
@@ -135,7 +135,7 @@
 
 
 static void
-info_macro_command (char *name, int from_tty)
+info_macro_command (const char *name, int from_tty)
 {
   struct macro_scope *ms = NULL;
   struct cleanup *cleanup_chain = make_cleanup (free_current_contents, &ms);
@@ -199,21 +199,21 @@
 static struct macro_table *user_macros;
 
 static void
-macro_define_command (char *exp, int from_tty)
+macro_define_command (const char *exp, int from_tty)
 {
   error ("Command not implemented yet.");
 }
 
 
 static void
-macro_undef_command (char *exp, int from_tty)
+macro_undef_command (const char *exp, int from_tty)
 {
   error ("Command not implemented yet.");
 }
 
 
 static void
-macro_list_command (char *exp, int from_tty)
+macro_list_command (const char *exp, int from_tty)
 {
   error ("Command not implemented yet.");
 }
diff --git a/gdb/main.c b/gdb/main.c
index fd25750..a42225b 100644
--- a/gdb/main.c
+++ b/gdb/main.c
@@ -219,7 +219,7 @@
     gdb_sysroot = TARGET_SYSTEM_ROOT;
 #else
 #if defined (TARGET_SYSTEM_ROOT)
-  gdb_sysroot = TARGET_SYSTEM_ROOT;
+  gdb_sysroot = xstrdup (TARGET_SYSTEM_ROOT);
 #else
   gdb_sysroot = "";
 #endif
diff --git a/gdb/maint.c b/gdb/maint.c
index aa34239..034fcbd 100644
--- a/gdb/maint.c
+++ b/gdb/maint.c
@@ -40,27 +40,15 @@
 
 extern void _initialize_maint_cmds (void);
 
-static void maintenance_command (char *, int);
+static void maintenance_do_deprecate (const char *text, int deprecate);
 
-static void maintenance_dump_me (char *, int);
+static void maintenance_command (const char *, int);
 
-static void maintenance_internal_error (char *args, int from_tty);
-
-static void maintenance_demangle (char *, int);
-
-static void maintenance_time_display (char *, int);
-
-static void maintenance_space_display (char *, int);
-
-static void maintenance_info_command (char *, int);
+static void maintenance_info_command (const char *, int);
 
 static void print_section_table (bfd *, asection *, void *);
 
-static void maintenance_info_sections (char *, int);
-
-static void maintenance_print_command (char *, int);
-
-static void maintenance_do_deprecate (char *, int);
+static void maintenance_print_command (const char *, int);
 
 /* Set this to the maximum number of seconds to wait instead of waiting forever
    in target_wait().  If this timer times out, then it generates an error and
@@ -85,7 +73,7 @@
  */
 
 static void
-maintenance_command (char *args, int from_tty)
+maintenance_command (const char *args, int from_tty)
 {
   printf_unfiltered ("\"maintenance\" must be followed by the name of a maintenance command.\n");
   help_list (maintenancelist, "maintenance ", -1, gdb_stdout);
@@ -94,7 +82,7 @@
 #ifndef _WIN32
 /* ARGSUSED */
 static void
-maintenance_dump_me (char *args, int from_tty)
+maintenance_dump_me (const char *args, int from_tty)
 {
   if (query ("Should GDB dump core? "))
     {
@@ -116,7 +104,7 @@
    GDB. */
 
 static void
-maintenance_internal_error (char *args, int from_tty)
+maintenance_internal_error (const char *args, int from_tty)
 {
   internal_error (__FILE__, __LINE__, "%s", (args == NULL ? "" : args));
 }
@@ -141,7 +129,7 @@
    demangle and print what it points to, etc.  (FIXME) */
 
 static void
-maintenance_demangle (char *args, int from_tty)
+maintenance_demangle (const char *args, int from_tty)
 {
   char *demangled;
 
@@ -166,7 +154,7 @@
 }
 
 static void
-maintenance_time_display (char *args, int from_tty)
+maintenance_time_display (const char *args, int from_tty)
 {
   extern int display_time;
 
@@ -177,7 +165,7 @@
 }
 
 static void
-maintenance_space_display (char *args, int from_tty)
+maintenance_space_display (const char *args, int from_tty)
 {
   extern int display_space;
 
@@ -193,7 +181,7 @@
 
 /* ARGSUSED */
 static void
-maintenance_info_command (char *arg, int from_tty)
+maintenance_info_command (const char *arg, int from_tty)
 {
   printf_unfiltered ("\"maintenance info\" must be followed by the name of an info command.\n");
   help_list (maintenanceinfolist, "maintenance info ", -1, gdb_stdout);
@@ -339,7 +327,7 @@
 static void
 print_objfile_section_info (bfd *abfd, 
 			    struct obj_section *asect, 
-			    char *string)
+			    const char *string)
 {
   flagword flags = bfd_get_section_flags (abfd, asect->the_bfd_section);
   const char *name = bfd_section_name (abfd, asect->the_bfd_section);
@@ -355,7 +343,7 @@
 
 /* ARGSUSED */
 static void
-maintenance_info_sections (char *arg, int from_tty)
+maintenance_info_sections (const char *arg, int from_tty)
 {
   if (exec_bfd)
     {
@@ -428,7 +416,7 @@
 
 /* ARGSUSED */
 static void
-maintenance_print_command (char *arg, int from_tty)
+maintenance_print_command (const char *arg, int from_tty)
 {
   printf_unfiltered ("\"maintenance print\" must be followed by the name of a print command.\n");
   help_list (maintenanceprintlist, "maintenance print ", -1, gdb_stdout);
@@ -536,7 +524,7 @@
    replacement.  */
 
 static void
-maintenance_do_deprecate (char *text, int deprecate)
+maintenance_do_deprecate (const char *text, int deprecate)
 {
 
   struct cmd_list_element *alias = NULL;
@@ -618,14 +606,14 @@
 static struct cmd_list_element *maintenance_show_cmdlist;
 
 static void
-maintenance_set_cmd (char *args, int from_tty)
+maintenance_set_cmd (const char *args, int from_tty)
 {
   printf_unfiltered ("\"maintenance set\" must be followed by the name of a set command.\n");
   help_list (maintenance_set_cmdlist, "maintenance set ", -1, gdb_stdout);
 }
 
 static void
-maintenance_show_cmd (char *args, int from_tty)
+maintenance_show_cmd (const char *args, int from_tty)
 {
   cmd_show_list (maintenance_show_cmdlist, from_tty, "");
 }
@@ -656,7 +644,7 @@
 }
 
 static void
-maintenance_set_profile_cmd (char *args, int from_tty, struct cmd_list_element *c)
+maintenance_set_profile_cmd (const char *args, int from_tty, struct cmd_list_element *c)
 {
   if (maintenance_profile_p == profiling_state)
     return;
@@ -688,7 +676,7 @@
 }
 #else
 static void
-maintenance_set_profile_cmd (char *args, int from_tty, struct cmd_list_element *c)
+maintenance_set_profile_cmd (const char *args, int from_tty, struct cmd_list_element *c)
 {
   error ("Profiling support is not available on this system.");
 }
diff --git a/gdb/memattr.c b/gdb/memattr.c
index 05ad413..ef53adf 100644
--- a/gdb/memattr.c
+++ b/gdb/memattr.c
@@ -133,7 +133,7 @@
 
 
 static void
-mem_command (char *args, int from_tty)
+mem_command (const char *args, int from_tty)
 {
   CORE_ADDR lo, hi;
   char *tok;
@@ -211,7 +211,7 @@
 
 
 static void
-mem_info_command (char *args, int from_tty)
+mem_info_command (const char *args, int from_tty)
 {
   struct mem_region *m;
   struct mem_attrib *attrib;
@@ -350,10 +350,10 @@
 }
 
 static void
-mem_enable_command (char *args, int from_tty)
+mem_enable_command (const char *args, int from_tty)
 {
-  char *p = args;
-  char *p1;
+  const char *p = args;
+  const char *p1;
   int num;
   struct mem_region *m;
 
@@ -400,10 +400,10 @@
 }
 
 static void
-mem_disable_command (char *args, int from_tty)
+mem_disable_command (const char *args, int from_tty)
 {
-  char *p = args;
-  char *p1;
+  const char *p = args;
+  const char *p1;
   int num;
   struct mem_region *m;
 
@@ -479,10 +479,10 @@
 }
 
 static void
-mem_delete_command (char *args, int from_tty)
+mem_delete_command (const char *args, int from_tty)
 {
-  char *p = args;
-  char *p1;
+  const char *p = args;
+  const char *p1;
   int num;
 
   dcache_invalidate (target_dcache);
diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c
index bf19ed8..57ee0df 100644
--- a/gdb/mips-tdep.c
+++ b/gdb/mips-tdep.c
@@ -2767,7 +2767,7 @@
       if (len > MIPS_SAVED_REGSIZE
 	  && (typecode == TYPE_CODE_STRUCT || typecode == TYPE_CODE_UNION))
 	{
-	  store_address (valbuf, MIPS_SAVED_REGSIZE, VALUE_ADDRESS (arg));
+	  store_unsigned_integer (valbuf, MIPS_SAVED_REGSIZE, VALUE_ADDRESS (arg));
 	  typecode = TYPE_CODE_PTR;
 	  len = MIPS_SAVED_REGSIZE;
 	  val = valbuf;
@@ -5442,7 +5442,7 @@
 	      /* Only MIPS_SAVED_REGSIZE bytes of GP registers are
 		 saved. */
 	      LONGEST val = read_memory_integer ((*addrp), MIPS_SAVED_REGSIZE);
-	      store_address (raw_buffer, REGISTER_RAW_SIZE (regnum), val);
+	      store_unsigned_integer (raw_buffer, REGISTER_RAW_SIZE (regnum), val);
 	    }
 	}
     }
diff --git a/gdb/mipsnbsd-tdep.c b/gdb/mipsnbsd-tdep.c
index 7776d46..9b40a3d 100644
--- a/gdb/mipsnbsd-tdep.c
+++ b/gdb/mipsnbsd-tdep.c
@@ -218,7 +218,7 @@
 }
 
 static int
-mipsnbsd_pc_in_sigtramp (CORE_ADDR pc, char *func_name)
+mipsnbsd_pc_in_sigtramp (CORE_ADDR pc, const char *func_name)
 {
   return (nbsd_pc_in_sigtramp (pc, func_name)
 	  || mipsnbsd_sigtramp_offset (pc) >= 0);
diff --git a/gdb/nbsd-tdep.c b/gdb/nbsd-tdep.c
index a2d8f7d..f1ba411 100644
--- a/gdb/nbsd-tdep.c
+++ b/gdb/nbsd-tdep.c
@@ -99,7 +99,7 @@
 }
 
 int
-nbsd_pc_in_sigtramp (CORE_ADDR pc, char *func_name)
+nbsd_pc_in_sigtramp (CORE_ADDR pc, const char *func_name)
 {
   /* Check for libc-provided signal trampoline.  All such trampolines
      have function names which begin with "__sigtramp".  */
diff --git a/gdb/nbsd-tdep.h b/gdb/nbsd-tdep.h
index 9d26ae9..05ea46d 100644
--- a/gdb/nbsd-tdep.h
+++ b/gdb/nbsd-tdep.h
@@ -25,6 +25,6 @@
 struct link_map_offsets *nbsd_ilp32_solib_svr4_fetch_link_map_offsets (void);
 struct link_map_offsets *nbsd_lp64_solib_svr4_fetch_link_map_offsets (void);
 
-int nbsd_pc_in_sigtramp (CORE_ADDR, char *);
+int nbsd_pc_in_sigtramp (CORE_ADDR, const char *);
 
 #endif /* NBSD_TDEP_H */
diff --git a/gdb/objc-lang.c b/gdb/objc-lang.c
index 368e336..b1e5587 100644
--- a/gdb/objc-lang.c
+++ b/gdb/objc-lang.c
@@ -855,7 +855,7 @@
  */
 
 static void
-selectors_info (char *regexp, int from_tty)
+selectors_info (const char *regexp, int from_tty)
 {
   struct objfile	*objfile;
   struct minimal_symbol *msymbol;
@@ -1006,7 +1006,7 @@
  */
 
 static void
-classes_info (char *regexp, int from_tty)
+classes_info (const char *regexp, int from_tty)
 {
   struct objfile	*objfile;
   struct minimal_symbol *msymbol;
@@ -1419,9 +1419,10 @@
     *ndebug = cdebug;
 }
 
-char *find_imps (struct symtab *symtab, struct block *block,
-		 char *method, struct symbol **syms, 
-		 unsigned int *nsym, unsigned int *ndebug)
+const char *
+find_imps (struct symtab *symtab, struct block *block,
+	   const char *method, struct symbol **syms, 
+	   unsigned int *nsym, unsigned int *ndebug)
 {
   char type = '\0';
   char *class = NULL;
@@ -1550,7 +1551,7 @@
 }
 
 void 
-print_object_command (char *args, int from_tty)
+print_object_command (const char *args, int from_tty)
 {
   struct value *object, *function, *description;
   CORE_ADDR string_addr, object_addr;
diff --git a/gdb/objc-lang.h b/gdb/objc-lang.h
index 0c49bac..ef1ec6a 100644
--- a/gdb/objc-lang.h
+++ b/gdb/objc-lang.h
@@ -51,9 +51,9 @@
 			   char **class, char **category, 
 			   char **selector);
 
-extern char *find_imps (struct symtab *symtab, struct block *block,
-			char *method, struct symbol **syms, 
-			unsigned int *nsym, unsigned int *ndebug);
+extern const char *find_imps (struct symtab *symtab, struct block *block,
+			      const char *method, struct symbol **syms, 
+			      unsigned int *nsym, unsigned int *ndebug);
 
 extern struct value *value_nsstring (char *ptr, int len);
 
diff --git a/gdb/osabi.c b/gdb/osabi.c
index 2241406..5084b0f 100644
--- a/gdb/osabi.c
+++ b/gdb/osabi.c
@@ -492,7 +492,7 @@
 }
 
 static void
-set_osabi (char *args, int from_tty, struct cmd_list_element *c)
+set_osabi (const char *args, int from_tty, struct cmd_list_element *c)
 {
   struct gdbarch_info info;
 
@@ -532,7 +532,7 @@
 }
 
 void
-show_osabi (char *args, int from_tty)
+show_osabi (const char *args, int from_tty)
 {
   if (user_osabi_state == osabi_auto)
     printf_filtered ("The current OS ABI is \"auto\" (currently \"%s\").\n",
diff --git a/gdb/parse.c b/gdb/parse.c
index d4a6a05..25057b3 100644
--- a/gdb/parse.c
+++ b/gdb/parse.c
@@ -563,7 +563,7 @@
      consider *prefixes* of the string; there is no need to look up
      "B::C" separately as a symbol in the previous example. */
 
-  register char *p;
+  const char *p;
   char *start, *end;
   char *prefix = NULL;
   char *tmp;
@@ -572,7 +572,7 @@
   struct type *t;
   int prefix_len = 0;
   int done = 0;
-  char *q;
+  const char *q;
 
   /* Check for HP-compiled executable -- in other cases
      return NULL, and caller must default to standard GDB
@@ -691,8 +691,8 @@
   return sym_var ? sym_var : sym_class;		/* found */
 }
 
-char *
-find_template_name_end (char *p)
+const char *
+find_template_name_end (const char *p)
 {
   int depth = 1;
   int just_seen_right = 0;
@@ -1103,11 +1103,11 @@
    If COMMA is nonzero, stop if a comma is reached.  */
 
 struct expression *
-parse_exp_1 (char **stringptr, struct block *block, int comma)
+parse_exp_1 (const char **stringptr, struct block *block, int comma)
 {
   struct cleanup *old_chain;
 
-  lexptr = *stringptr;
+  const char *lexptr = *stringptr;
   prev_lexptr = NULL;
 
   paren_depth = 0;
@@ -1172,7 +1172,7 @@
    to use up all of the contents of STRING.  */
 
 struct expression *
-parse_expression (char *string)
+parse_expression (const char *string)
 {
   register struct expression *exp;
   exp = parse_exp_1 (&string, 0, 0);
diff --git a/gdb/parser-defs.h b/gdb/parser-defs.h
index f03f537..9e9534b 100644
--- a/gdb/parser-defs.h
+++ b/gdb/parser-defs.h
@@ -139,7 +139,7 @@
 extern struct symbol *parse_nested_classes_for_hpacc (char *, int, char **,
 						      int *, char **);
 
-extern char *find_template_name_end (char *);
+extern const char *find_template_name_end (const char *);
 
 extern void start_arglist (void);
 
diff --git a/gdb/ppc-sysv-tdep.c b/gdb/ppc-sysv-tdep.c
index 9894a58..6e8216c 100644
--- a/gdb/ppc-sysv-tdep.c
+++ b/gdb/ppc-sysv-tdep.c
@@ -180,7 +180,7 @@
   write_register (SP_REGNUM, sp);
 
   /* write the backchain */
-  store_address (old_sp_buf, 4, saved_sp);
+  store_unsigned_integer (old_sp_buf, 4, saved_sp);
   write_memory (sp, old_sp_buf, 4);
 
   argoffset = 8;
@@ -261,7 +261,7 @@
 	      || TYPE_CODE (type) == TYPE_CODE_UNION)
 	    {
 	      write_memory (sp + structoffset, val, len);
-	      store_address (val_buf, 4, sp + structoffset);
+	      store_unsigned_integer (val_buf, 4, sp + structoffset);
 	      structoffset += round2 (len, 8);
 	    }
 	  else
diff --git a/gdb/ppcnbsd-tdep.c b/gdb/ppcnbsd-tdep.c
index 21ab858..7c4186c 100644
--- a/gdb/ppcnbsd-tdep.c
+++ b/gdb/ppcnbsd-tdep.c
@@ -198,7 +198,7 @@
 };
 
 static int
-ppcnbsd_pc_in_sigtramp (CORE_ADDR pc, char *func_name)
+ppcnbsd_pc_in_sigtramp (CORE_ADDR pc, const char *func_name)
 {
   /* FIXME: Need to add support for kernel-provided signal trampolines.  */
   return (nbsd_pc_in_sigtramp (pc, func_name));
diff --git a/gdb/printcmd.c b/gdb/printcmd.c
index 018d773..d58ca1f 100644
--- a/gdb/printcmd.c
+++ b/gdb/printcmd.c
@@ -126,7 +126,7 @@
 
 /* Prototypes for exported functions. */
 
-void output_command (char *, int);
+void output_command (const char *, int);
 
 void _initialize_printcmd (void);
 
@@ -134,38 +134,38 @@
 
 static void delete_display (int);
 
-static void enable_display (char *, int);
+static void enable_display (const char *, int);
 
-static void disable_display_command (char *, int);
+static void disable_display_command (const char *, int);
 
-static void printf_command (char *, int);
+static void printf_command (const char *, int);
 
 static void print_frame_nameless_args (struct frame_info *, long,
 				       int, int, struct ui_file *);
 
-static void display_info (char *, int);
+static void display_info (const char *, int);
 
 static void do_one_display (struct display *);
 
-static void undisplay_command (char *, int);
+static void undisplay_command (const char *, int);
 
 static void free_display (struct display *);
 
-static void display_command (char *, int);
+static void display_command (const char *, int);
 
-void x_command (char *, int);
+void x_command (const char *, int);
 
-static void address_info (char *, int);
+static void address_info (const char *, int);
 
-static void set_command (char *, int);
+static void set_command (const char *, int);
 
-static void call_command (char *, int);
+static void call_command (const char *, int);
 
-static void inspect_command (char *, int);
+static void inspect_command (const char *, int);
 
-static void print_command (char *, int);
+static void print_command (const char *, int);
 
-static void print_command_1 (char *, int, int);
+static void print_command_1 (const char *, int, int);
 
 static void validate_format (struct format_data, char *);
 
@@ -174,9 +174,9 @@
 
 static void print_formatted (struct value *, int, int, struct ui_file *);
 
-static struct format_data decode_format (char **, int, int);
+static struct format_data decode_format (const char **, int, int);
 
-static void sym_info (char *, int);
+static void sym_info (const char *, int);
 
 
 /* Decode a format specification.  *STRING_PTR should point to it.
@@ -190,10 +190,10 @@
    past the specification and past all whitespace following it.  */
 
 static struct format_data
-decode_format (char **string_ptr, int oformat, int osize)
+decode_format (const char **string_ptr, int oformat, int osize)
 {
   struct format_data val;
-  register char *p = *string_ptr;
+  const char *p = *string_ptr;
 
   val.format = '?';
   val.size = '?';
@@ -542,8 +542,8 @@
    settings of the demangle and asm_demangle variables.  */
 
 void
-print_address_symbolic (CORE_ADDR addr, struct ui_file *stream, int do_demangle,
-			char *leadin)
+print_address_symbolic (CORE_ADDR addr, struct ui_file *stream,
+			int do_demangle, const char *leadin)
 {
   char *name = NULL;
   char *filename = NULL;
@@ -872,7 +872,7 @@
  */
 
 static void
-print_command_1 (char *exp, int inspect, int voidprint)
+print_command_1 (const char *exp, int inspect, int voidprint)
 {
   struct expression *expr;
   register struct cleanup *old_chain = 0;
@@ -946,7 +946,7 @@
 
 /* ARGSUSED */
 static void
-print_command (char *exp, int from_tty)
+print_command (const char *exp, int from_tty)
 {
   print_command_1 (exp, 0, 1);
 }
@@ -954,7 +954,7 @@
 /* Same as print, except in epoch, it gets its own window */
 /* ARGSUSED */
 static void
-inspect_command (char *exp, int from_tty)
+inspect_command (const char *exp, int from_tty)
 {
   extern int epoch_interface;
 
@@ -964,14 +964,14 @@
 /* Same as print, except it doesn't print void results. */
 /* ARGSUSED */
 static void
-call_command (char *exp, int from_tty)
+call_command (const char *exp, int from_tty)
 {
   print_command_1 (exp, 0, 0);
 }
 
 /* ARGSUSED */
 void
-output_command (char *exp, int from_tty)
+output_command (const char *exp, int from_tty)
 {
   struct expression *expr;
   register struct cleanup *old_chain;
@@ -1006,7 +1006,7 @@
 
 /* ARGSUSED */
 static void
-set_command (char *exp, int from_tty)
+set_command (const char *exp, int from_tty)
 {
   struct expression *expr = parse_expression (exp);
   register struct cleanup *old_chain =
@@ -1017,7 +1017,7 @@
 
 /* ARGSUSED */
 static void
-sym_info (char *arg, int from_tty)
+sym_info (const char *arg, int from_tty)
 {
   struct minimal_symbol *msymbol;
   struct objfile *objfile;
@@ -1062,7 +1062,7 @@
 
 /* ARGSUSED */
 static void
-address_info (char *exp, int from_tty)
+address_info (const char *exp, int from_tty)
 {
   register struct symbol *sym;
   register struct minimal_symbol *msymbol;
@@ -1283,7 +1283,7 @@
 }
 
 void
-x_command (char *exp, int from_tty)
+x_command (const char *exp, int from_tty)
 {
   struct expression *expr;
   struct format_data fmt;
@@ -1360,7 +1360,7 @@
    Specify the expression.  */
 
 static void
-display_command (char *exp, int from_tty)
+display_command (const char *exp, int from_tty)
 {
   struct format_data fmt;
   register struct expression *expr;
@@ -1477,10 +1477,10 @@
    Specify the element numbers.  */
 
 static void
-undisplay_command (char *args, int from_tty)
+undisplay_command (const char *args, int from_tty)
 {
-  register char *p = args;
-  register char *p1;
+  const char *p = args;
+  const char *p1;
   register int num;
 
   if (args == 0)
@@ -1638,7 +1638,7 @@
 }
 
 static void
-display_info (char *ignore, int from_tty)
+display_info (const char *ignore, int from_tty)
 {
   register struct display *d;
 
@@ -1665,10 +1665,10 @@
 }
 
 static void
-enable_display (char *args, int from_tty)
+enable_display (const char *args, int from_tty)
 {
-  register char *p = args;
-  register char *p1;
+  const char *p = args;
+  const char *p1;
   register int num;
   register struct display *d;
 
@@ -1704,10 +1704,10 @@
 
 /* ARGSUSED */
 static void
-disable_display_command (char *args, int from_tty)
+disable_display_command (const char *args, int from_tty)
 {
-  register char *p = args;
-  register char *p1;
+  const char *p = args;
+  const char *p1;
   register struct display *d;
 
   if (p == 0)
@@ -1969,10 +1969,10 @@
 
 /* ARGSUSED */
 static void
-printf_command (char *arg, int from_tty)
+printf_command (const char *arg, int from_tty)
 {
   register char *f = NULL;
-  register char *s = arg;
+  const char *s = arg;
   char *string = NULL;
   struct value **val_args;
   char *substrings;
@@ -2144,7 +2144,7 @@
 
     while (*s != '\0')
       {
-	char *s1;
+	const char *s1;
 	if (nargs == allocated_args)
 	  val_args = (struct value **) xrealloc ((char *) val_args,
 						 (allocated_args *= 2)
diff --git a/gdb/regcache.c b/gdb/regcache.c
index acf3044..0f6ac92 100644
--- a/gdb/regcache.c
+++ b/gdb/regcache.c
@@ -1410,7 +1410,7 @@
 
 /* ARGSUSED */
 static void
-reg_flush_command (char *command, int from_tty)
+reg_flush_command (const char *command, int from_tty)
 {
   /* Force-flush the register cache.  */
   registers_changed ();
@@ -1659,7 +1659,7 @@
 }
 
 static void
-regcache_print (char *args, enum regcache_dump_what what_to_dump)
+regcache_print (const char *args, enum regcache_dump_what what_to_dump)
 {
   if (args == NULL)
     regcache_dump (current_regcache, gdb_stdout, what_to_dump);
@@ -1674,25 +1674,25 @@
 }
 
 static void
-maintenance_print_registers (char *args, int from_tty)
+maintenance_print_registers (const char *args, int from_tty)
 {
   regcache_print (args, regcache_dump_none);
 }
 
 static void
-maintenance_print_raw_registers (char *args, int from_tty)
+maintenance_print_raw_registers (const char *args, int from_tty)
 {
   regcache_print (args, regcache_dump_raw);
 }
 
 static void
-maintenance_print_cooked_registers (char *args, int from_tty)
+maintenance_print_cooked_registers (const char *args, int from_tty)
 {
   regcache_print (args, regcache_dump_cooked);
 }
 
 static void
-maintenance_print_register_groups (char *args, int from_tty)
+maintenance_print_register_groups (const char *args, int from_tty)
 {
   regcache_print (args, regcache_dump_groups);
 }
diff --git a/gdb/reggroups.c b/gdb/reggroups.c
index b72140e..071942b 100644
--- a/gdb/reggroups.c
+++ b/gdb/reggroups.c
@@ -214,7 +214,7 @@
 }
 
 static void
-maintenance_print_reggroups (char *args, int from_tty)
+maintenance_print_reggroups (const char *args, int from_tty)
 {
   if (args == NULL)
     reggroups_dump (current_gdbarch, gdb_stdout);
diff --git a/gdb/remote-sim.c b/gdb/remote-sim.c
index f7b9e89..878c3f6 100644
--- a/gdb/remote-sim.c
+++ b/gdb/remote-sim.c
@@ -80,15 +80,15 @@
 
 static void gdbsim_kill (void);
 
-static void gdbsim_load (char *prog, int fromtty);
+static void gdbsim_load (const char *prog, int fromtty);
 
 static void gdbsim_create_inferior (char *exec_file, char *args, char **env);
 
-static void gdbsim_open (char *args, int from_tty);
+static void gdbsim_open (const char *args, int from_tty);
 
 static void gdbsim_close (int quitting);
 
-static void gdbsim_detach (char *args, int from_tty);
+static void gdbsim_detach (const char *args, int from_tty);
 
 static void gdbsim_resume (ptid_t ptid, int step, enum target_signal siggnal);
 
@@ -107,7 +107,7 @@
 
 static void gdbsim_stop (void);
 
-void simulator_command (char *args, int from_tty);
+void simulator_command (const char *args, int from_tty);
 
 /* Naming convention:
 
@@ -399,7 +399,7 @@
    GDB's symbol tables to match.  */
 
 static void
-gdbsim_load (char *prog, int fromtty)
+gdbsim_load (const char *prog, int fromtty)
 {
   if (sr_get_debug ())
     printf_filtered ("gdbsim_load: prog \"%s\"\n", prog);
@@ -477,7 +477,7 @@
 /* Called when selecting the simulator. EG: (gdb) target sim name.  */
 
 static void
-gdbsim_open (char *args, int from_tty)
+gdbsim_open (const char *args, int from_tty)
 {
   int len;
   char *arg_buf;
@@ -585,7 +585,7 @@
    Use this when you want to detach and do something else with your gdb.  */
 
 static void
-gdbsim_detach (char *args, int from_tty)
+gdbsim_detach (const char *args, int from_tty)
 {
   if (sr_get_debug ())
     printf_filtered ("gdbsim_detach: args \"%s\"\n", args);
@@ -827,7 +827,7 @@
    simulator must do any command interpretation work.  */
 
 void
-simulator_command (char *args, int from_tty)
+simulator_command (const char *args, int from_tty)
 {
   if (gdbsim_desc == NULL)
     {
diff --git a/gdb/remote-utils.c b/gdb/remote-utils.c
index ba150e3..3c843f9 100644
--- a/gdb/remote-utils.c
+++ b/gdb/remote-utils.c
@@ -77,7 +77,7 @@
 struct gr_settings *gr_settings = NULL;
 
 static void usage (char *, char *);
-static void sr_com (char *, int);
+static void sr_com (const char *, int);
 
 static void
 usage (char *proto, char *junk)
@@ -277,7 +277,7 @@
 }
 
 void
-sr_write (char *a, int l)
+sr_write (const char *a, int l)
 {
   int i;
 
@@ -292,7 +292,7 @@
 }
 
 void
-sr_write_cr (char *s)
+sr_write_cr (const char *s)
 {
   sr_write (s, strlen (s));
   sr_write ("\r", 1);
@@ -376,7 +376,7 @@
    FIXME: Can't handle commands that take input.  */
 
 static void
-sr_com (char *args, int fromtty)
+sr_com (const char *args, int fromtty)
 {
   sr_check_open ();
 
diff --git a/gdb/remote-utils.h b/gdb/remote-utils.h
index cae5d5e..8b44f3e2a 100644
--- a/gdb/remote-utils.h
+++ b/gdb/remote-utils.h
@@ -127,8 +127,8 @@
 void sr_expect (char *string);
 void sr_get_hex_byte (char *byt);
 void sr_scan_args (char *proto, char *args);
-void sr_write (char *a, int l);
-void sr_write_cr (char *s);
+void sr_write (const char *a, int l);
+void sr_write_cr (const char *s);
 
 void gr_open (char *args, int from_tty, struct gr_settings *gr_settings);
 void gr_load_image (char *, int from_tty);
diff --git a/gdb/remote.c b/gdb/remote.c
index 20becee..efb9b94 100644
--- a/gdb/remote.c
+++ b/gdb/remote.c
@@ -88,14 +88,14 @@
 				 enum target_signal siggnal);
 static int remote_start_remote (struct ui_out *uiout, void *dummy);
 
-static void remote_open (char *name, int from_tty);
-static void remote_async_open (char *name, int from_tty);
+static void remote_open (const char *name, int from_tty);
+static void remote_async_open (const char *name, int from_tty);
 
-static void extended_remote_open (char *name, int from_tty);
-static void extended_remote_async_open (char *name, int from_tty);
+static void extended_remote_open (const char *name, int from_tty);
+static void extended_remote_async_open (const char *name, int from_tty);
 
-static void remote_open_1 (char *, int, struct target_ops *, int extended_p,
-			   int async_p);
+static void remote_open_1 (const char *, int, struct target_ops *,
+			   int extended_p, int async_p);
 
 static void remote_close (int quitting);
 
@@ -127,8 +127,8 @@
 
 static int tohex (int nib);
 
-static void remote_detach (char *args, int from_tty);
-static void remote_async_detach (char *args, int from_tty);
+static void remote_detach (const char *args, int from_tty);
+static void remote_async_detach (const char *args, int from_tty);
 
 static void remote_interrupt (int signo);
 
@@ -172,13 +172,13 @@
 
 static CORE_ADDR remote_address_masked (CORE_ADDR);
 
-static void print_packet (char *);
+static void print_packet (const char *);
 
 static unsigned long crc32 (unsigned char *, int, unsigned int);
 
-static void compare_sections_command (char *, int);
+static void compare_sections_command (const char *, int);
 
-static void packet_command (char *, int);
+static void packet_command (const char *, int);
 
 static int stub_unpack_int (char *buff, int fieldlength);
 
@@ -194,7 +194,7 @@
 
 static int bin2hex (const char *bin, char *hex, int count);
 
-static int putpkt_binary (char *buf, int cnt);
+static int putpkt_binary (const char *buf, int cnt);
 
 static void check_binary_download (CORE_ADDR addr);
 
@@ -468,7 +468,7 @@
    something really big then do a sanity check. */
 
 static void
-set_memory_packet_size (char *args, struct memory_packet_config *config)
+set_memory_packet_size (const char *args, struct memory_packet_config *config)
 {
   int fixed_p = config->fixed_p;
   long size = config->size;
@@ -526,13 +526,13 @@
 };
 
 static void
-set_memory_write_packet_size (char *args, int from_tty)
+set_memory_write_packet_size (const char *args, int from_tty)
 {
   set_memory_packet_size (args, &memory_write_packet_config);
 }
 
 static void
-show_memory_write_packet_size (char *args, int from_tty)
+show_memory_write_packet_size (const char *args, int from_tty)
 {
   show_memory_packet_size (&memory_write_packet_config);
 }
@@ -549,13 +549,13 @@
 };
 
 static void
-set_memory_read_packet_size (char *args, int from_tty)
+set_memory_read_packet_size (const char *args, int from_tty)
 {
   set_memory_packet_size (args, &memory_read_packet_config);
 }
 
 static void
-show_memory_read_packet_size (char *args, int from_tty)
+show_memory_read_packet_size (const char *args, int from_tty)
 {
   show_memory_packet_size (&memory_read_packet_config);
 }
@@ -759,14 +759,14 @@
 static struct packet_config remote_protocol_qSymbol;
 
 static void
-set_remote_protocol_qSymbol_packet_cmd (char *args, int from_tty,
-				  struct cmd_list_element *c)
+set_remote_protocol_qSymbol_packet_cmd (const char *args, int from_tty,
+					struct cmd_list_element *c)
 {
   update_packet_config (&remote_protocol_qSymbol);
 }
 
 static void
-show_remote_protocol_qSymbol_packet_cmd (char *args, int from_tty,
+show_remote_protocol_qSymbol_packet_cmd (const char *args, int from_tty,
 					 struct cmd_list_element *c)
 {
   show_packet_config_cmd (&remote_protocol_qSymbol);
@@ -776,14 +776,14 @@
 static struct packet_config remote_protocol_e;
 
 static void
-set_remote_protocol_e_packet_cmd (char *args, int from_tty,
+set_remote_protocol_e_packet_cmd (const char *args, int from_tty,
 				  struct cmd_list_element *c)
 {
   update_packet_config (&remote_protocol_e);
 }
 
 static void
-show_remote_protocol_e_packet_cmd (char *args, int from_tty,
+show_remote_protocol_e_packet_cmd (const char *args, int from_tty,
 				   struct cmd_list_element *c)
 {
   show_packet_config_cmd (&remote_protocol_e);
@@ -794,14 +794,14 @@
 static struct packet_config remote_protocol_E;
 
 static void
-set_remote_protocol_E_packet_cmd (char *args, int from_tty,
+set_remote_protocol_E_packet_cmd (const char *args, int from_tty,
 				  struct cmd_list_element *c)
 {
   update_packet_config (&remote_protocol_E);
 }
 
 static void
-show_remote_protocol_E_packet_cmd (char *args, int from_tty,
+show_remote_protocol_E_packet_cmd (const char *args, int from_tty,
 				   struct cmd_list_element *c)
 {
   show_packet_config_cmd (&remote_protocol_E);
@@ -813,14 +813,14 @@
 static struct packet_config remote_protocol_P;
 
 static void
-set_remote_protocol_P_packet_cmd (char *args, int from_tty,
+set_remote_protocol_P_packet_cmd (const char *args, int from_tty,
 				  struct cmd_list_element *c)
 {
   update_packet_config (&remote_protocol_P);
 }
 
 static void
-show_remote_protocol_P_packet_cmd (char *args, int from_tty,
+show_remote_protocol_P_packet_cmd (const char *args, int from_tty,
 				   struct cmd_list_element *c)
 {
   show_packet_config_cmd (&remote_protocol_P);
@@ -844,70 +844,70 @@
    command callback should include a context argument. */
 
 static void
-set_remote_protocol_Z_software_bp_packet_cmd (char *args, int from_tty,
+set_remote_protocol_Z_software_bp_packet_cmd (const char *args, int from_tty,
 					      struct cmd_list_element *c)
 {
   update_packet_config (&remote_protocol_Z[Z_PACKET_SOFTWARE_BP]);
 }
 
 static void
-show_remote_protocol_Z_software_bp_packet_cmd (char *args, int from_tty,
+show_remote_protocol_Z_software_bp_packet_cmd (const char *args, int from_tty,
 					       struct cmd_list_element *c)
 {
   show_packet_config_cmd (&remote_protocol_Z[Z_PACKET_SOFTWARE_BP]);
 }
 
 static void
-set_remote_protocol_Z_hardware_bp_packet_cmd (char *args, int from_tty,
+set_remote_protocol_Z_hardware_bp_packet_cmd (const char *args, int from_tty,
 					      struct cmd_list_element *c)
 {
   update_packet_config (&remote_protocol_Z[Z_PACKET_HARDWARE_BP]);
 }
 
 static void
-show_remote_protocol_Z_hardware_bp_packet_cmd (char *args, int from_tty,
+show_remote_protocol_Z_hardware_bp_packet_cmd (const char *args, int from_tty,
 					       struct cmd_list_element *c)
 {
   show_packet_config_cmd (&remote_protocol_Z[Z_PACKET_HARDWARE_BP]);
 }
 
 static void
-set_remote_protocol_Z_write_wp_packet_cmd (char *args, int from_tty,
-					      struct cmd_list_element *c)
+set_remote_protocol_Z_write_wp_packet_cmd (const char *args, int from_tty,
+					   struct cmd_list_element *c)
 {
   update_packet_config (&remote_protocol_Z[Z_PACKET_WRITE_WP]);
 }
 
 static void
-show_remote_protocol_Z_write_wp_packet_cmd (char *args, int from_tty,
+show_remote_protocol_Z_write_wp_packet_cmd (const char *args, int from_tty,
 					    struct cmd_list_element *c)
 {
   show_packet_config_cmd (&remote_protocol_Z[Z_PACKET_WRITE_WP]);
 }
 
 static void
-set_remote_protocol_Z_read_wp_packet_cmd (char *args, int from_tty,
-					      struct cmd_list_element *c)
+set_remote_protocol_Z_read_wp_packet_cmd (const char *args, int from_tty,
+					  struct cmd_list_element *c)
 {
   update_packet_config (&remote_protocol_Z[Z_PACKET_READ_WP]);
 }
 
 static void
-show_remote_protocol_Z_read_wp_packet_cmd (char *args, int from_tty,
+show_remote_protocol_Z_read_wp_packet_cmd (const char *args, int from_tty,
 					   struct cmd_list_element *c)
 {
   show_packet_config_cmd (&remote_protocol_Z[Z_PACKET_READ_WP]);
 }
 
 static void
-set_remote_protocol_Z_access_wp_packet_cmd (char *args, int from_tty,
-					      struct cmd_list_element *c)
+set_remote_protocol_Z_access_wp_packet_cmd (const char *args, int from_tty,
+					    struct cmd_list_element *c)
 {
   update_packet_config (&remote_protocol_Z[Z_PACKET_ACCESS_WP]);
 }
 
 static void
-show_remote_protocol_Z_access_wp_packet_cmd (char *args, int from_tty,
+show_remote_protocol_Z_access_wp_packet_cmd (const char *args, int from_tty,
 					     struct cmd_list_element *c)
 {
   show_packet_config_cmd (&remote_protocol_Z[Z_PACKET_ACCESS_WP]);
@@ -919,7 +919,7 @@
 static enum auto_boolean remote_Z_packet_detect;
 
 static void
-set_remote_protocol_Z_packet_cmd (char *args, int from_tty,
+set_remote_protocol_Z_packet_cmd (const char *args, int from_tty,
 				  struct cmd_list_element *c)
 {
   int i;
@@ -931,7 +931,7 @@
 }
 
 static void
-show_remote_protocol_Z_packet_cmd (char *args, int from_tty,
+show_remote_protocol_Z_packet_cmd (const char *args, int from_tty,
 				   struct cmd_list_element *c)
 {
   int i;
@@ -965,7 +965,7 @@
 static int use_threadextra_query;
 
 static void
-set_remote_protocol_binary_download_cmd (char *args,
+set_remote_protocol_binary_download_cmd (const char *args,
 					 int from_tty,
 					 struct cmd_list_element *c)
 {
@@ -973,7 +973,7 @@
 }
 
 static void
-show_remote_protocol_binary_download_cmd (char *args, int from_tty,
+show_remote_protocol_binary_download_cmd (const char *args, int from_tty,
 					  struct cmd_list_element *c)
 {
   show_packet_config_cmd (&remote_protocol_binary_download);
@@ -2153,14 +2153,14 @@
    NAME is the filename used for communication.  */
 
 static void
-remote_open (char *name, int from_tty)
+remote_open (const char *name, int from_tty)
 {
   remote_open_1 (name, from_tty, &remote_ops, 0, 0);
 }
 
 /* Just like remote_open, but with asynchronous support. */
 static void
-remote_async_open (char *name, int from_tty)
+remote_async_open (const char *name, int from_tty)
 {
   remote_open_1 (name, from_tty, &remote_async_ops, 0, 1);
 }
@@ -2169,7 +2169,7 @@
    remote gdb protocol.  NAME is the filename used for communication.  */
 
 static void
-extended_remote_open (char *name, int from_tty)
+extended_remote_open (const char *name, int from_tty)
 {
   remote_open_1 (name, from_tty, &extended_remote_ops, 1 /*extended_p */,
 		 0 /* async_p */);
@@ -2177,7 +2177,7 @@
 
 /* Just like extended_remote_open, but with asynchronous support. */
 static void
-extended_remote_async_open (char *name, int from_tty)
+extended_remote_async_open (const char *name, int from_tty)
 {
   remote_open_1 (name, from_tty, &extended_async_remote_ops,
 		 1 /*extended_p */, 1 /* async_p */);
@@ -2240,7 +2240,7 @@
 }
 
 static struct serial *
-remote_serial_open (char *name)
+remote_serial_open (const char *name)
 {
   static int udp_warning = 0;
 
@@ -2260,7 +2260,7 @@
 }
 
 static void
-remote_open_1 (char *name, int from_tty, struct target_ops *target,
+remote_open_1 (const char *name, int from_tty, struct target_ops *target,
 	       int extended_p, int async_p)
 {
   int ex;
@@ -2403,7 +2403,7 @@
    die when it hits one.  */
 
 static void
-remote_detach (char *args, int from_tty)
+remote_detach (const char *args, int from_tty)
 {
   struct remote_state *rs = get_remote_state ();
   char *buf = alloca (rs->remote_packet_size);
@@ -2423,7 +2423,7 @@
 
 /* Same as remote_detach, but with async support. */
 static void
-remote_async_detach (char *args, int from_tty)
+remote_async_detach (const char *args, int from_tty)
 {
   struct remote_state *rs = get_remote_state ();
   char *buf = alloca (rs->remote_packet_size);
@@ -4109,7 +4109,7 @@
    string notation.  */
 
 static void
-print_packet (char *buf)
+print_packet (const char *buf)
 {
   puts_filtered ("\"");
   fputstr_filtered (buf, '"', gdb_stdout);
@@ -4117,7 +4117,7 @@
 }
 
 int
-putpkt (char *buf)
+putpkt (const char *buf)
 {
   return putpkt_binary (buf, strlen (buf));
 }
@@ -4128,7 +4128,7 @@
    debugging (remote_debug) and want to print the sent packet as a string */
 
 static int
-putpkt_binary (char *buf, int cnt)
+putpkt_binary (const char *buf, int cnt)
 {
   struct remote_state *rs = get_remote_state ();
   int i;
@@ -5029,7 +5029,7 @@
    generic_load()) to make use of this target functionality. */
 
 static void
-compare_sections_command (char *args, int from_tty)
+compare_sections_command (const char *args, int from_tty)
 {
   struct remote_state *rs = get_remote_state ();
   asection *s;
@@ -5173,7 +5173,7 @@
 }
 
 static void
-remote_rcmd (char *command,
+remote_rcmd (const char *command,
 	     struct ui_file *outbuf)
 {
   struct remote_state *rs = get_remote_state ();
@@ -5231,7 +5231,7 @@
 }
 
 static void
-packet_command (char *args, int from_tty)
+packet_command (const char *args, int from_tty)
 {
   struct remote_state *rs = get_remote_state ();
   char *buf = alloca (rs->remote_packet_size);
@@ -5258,26 +5258,26 @@
 
 static void display_thread_info (struct gdb_ext_thread_info *info);
 
-static void threadset_test_cmd (char *cmd, int tty);
+static void threadset_test_cmd (const char *cmd, int tty);
 
-static void threadalive_test (char *cmd, int tty);
+static void threadalive_test (const char *cmd, int tty);
 
-static void threadlist_test_cmd (char *cmd, int tty);
+static void threadlist_test_cmd (const char *cmd, int tty);
 
 int get_and_display_threadinfo (threadref * ref);
 
-static void threadinfo_test_cmd (char *cmd, int tty);
+static void threadinfo_test_cmd (const char *cmd, int tty);
 
 static int thread_display_step (threadref * ref, void *context);
 
-static void threadlist_update_test_cmd (char *cmd, int tty);
+static void threadlist_update_test_cmd (const char *cmd, int tty);
 
 static void init_remote_threadtests (void);
 
 #define SAMPLE_THREAD  0x05060708	/* Truncated 64 bit threadid */
 
 static void
-threadset_test_cmd (char *cmd, int tty)
+threadset_test_cmd (const char *cmd, int tty)
 {
   int sample_thread = SAMPLE_THREAD;
 
@@ -5310,7 +5310,7 @@
 }
 
 static void
-threadlist_test_cmd (char *cmd, int tty)
+threadlist_test_cmd (const char *cmd, int tty)
 {
   int startflag = 1;
   threadref nextthread;
@@ -5355,7 +5355,7 @@
 }
 
 static void
-threadinfo_test_cmd (char *cmd, int tty)
+threadinfo_test_cmd (const char *cmd, int tty)
 {
   int athread = SAMPLE_THREAD;
   threadref thread;
@@ -5375,7 +5375,7 @@
 }
 
 static void
-threadlist_update_test_cmd (char *cmd, int tty)
+threadlist_update_test_cmd (const char *cmd, int tty)
 {
   printf_filtered ("Remote Threadlist update test\n");
   remote_threadlist_iterator (thread_display_step, 0, CRAZY_MAX_THREADS);
@@ -5493,7 +5493,7 @@
  */
 
 static void
-remote_info_process (char *args, int from_tty)
+remote_info_process (const char *args, int from_tty)
 {
   struct remote_state *rs = get_remote_state ();
   char *buf = alloca (rs->remote_packet_size);
@@ -5522,7 +5522,7 @@
  */
 
 static void
-remote_cisco_open (char *name, int from_tty)
+remote_cisco_open (const char *name, int from_tty)
 {
   int ex;
   if (name == 0)
@@ -6000,12 +6000,12 @@
 }
 
 static void
-set_remote_cmd (char *args, int from_tty)
+set_remote_cmd (const char *args, int from_tty)
 {
 }
 
 static void
-show_remote_cmd (char *args, int from_tty)
+show_remote_cmd (const char *args, int from_tty)
 {
   /* FIXME: cagney/2002-06-15: This function should iterate over
      remote_show_cmdlist for a list of sub commands to show.  */
diff --git a/gdb/remote.h b/gdb/remote.h
index 4477148..df6d7bc 100644
--- a/gdb/remote.h
+++ b/gdb/remote.h
@@ -36,7 +36,7 @@
    we are debugging (remote_debug) and want to print the sent packet
    as a string */
 
-extern int putpkt (char *buf);
+extern int putpkt (const char *buf);
 
 /* Send HEX encoded string to the target console. (gdb_stdtarg) */
 
diff --git a/gdb/rs6000-tdep.c b/gdb/rs6000-tdep.c
index 0b239bd..08c97a1 100644
--- a/gdb/rs6000-tdep.c
+++ b/gdb/rs6000-tdep.c
@@ -1269,7 +1269,7 @@
     write_register (SP_REGNUM, sp);
 
   /* set back chain properly */
-  store_address (tmp_buffer, 4, saved_sp);
+  store_unsigned_integer (tmp_buffer, 4, saved_sp);
   write_memory (sp, tmp_buffer, 4);
 
   target_store_registers (-1);
@@ -1415,7 +1415,7 @@
    in handle_inferior_event() to skip past @FIX code.  */
 
 int
-rs6000_in_solib_return_trampoline (CORE_ADDR pc, char *name)
+rs6000_in_solib_return_trampoline (CORE_ADDR pc, const char *name)
 {
   return name && !strncmp (name, "@FIX", 4);
 }
@@ -2985,7 +2985,7 @@
 static struct cmd_list_element *info_powerpc_cmdlist = NULL;
 
 static void
-rs6000_info_powerpc_command (char *args, int from_tty)
+rs6000_info_powerpc_command (const char *args, int from_tty)
 {
   help_list (info_powerpc_cmdlist, "info powerpc ", class_info, gdb_stdout);
 }
diff --git a/gdb/serial.c b/gdb/serial.c
index ada5631..c889ba7 100644
--- a/gdb/serial.c
+++ b/gdb/serial.c
@@ -652,14 +652,14 @@
 static struct cmd_list_element *serial_show_cmdlist;
 
 static void
-serial_set_cmd (char *args, int from_tty)
+serial_set_cmd (const char *args, int from_tty)
 {
   printf_unfiltered ("\"set serial\" must be followed by the name of a command.\n");
   help_list (serial_set_cmdlist, "set serial ", -1, gdb_stdout);
 }
 
 static void
-serial_show_cmd (char *args, int from_tty)
+serial_show_cmd (const char *args, int from_tty)
 {
   cmd_show_list (serial_show_cmdlist, from_tty, "");
 }
diff --git a/gdb/sh-tdep.c b/gdb/sh-tdep.c
index 0ef65de..1c7a1dd 100644
--- a/gdb/sh-tdep.c
+++ b/gdb/sh-tdep.c
@@ -1873,8 +1873,8 @@
 	  if (regnum == SP_REGNUM)
 	    {
 	      if (raw_buffer)	/* SP register treated specially */
-		store_address (raw_buffer, REGISTER_RAW_SIZE (regnum),
-			       get_frame_saved_regs (frame)[regnum]);
+		store_unsigned_integer (raw_buffer, REGISTER_RAW_SIZE (regnum),
+					get_frame_saved_regs (frame)[regnum]);
 	    }
 	  else
 	    { /* any other register */
diff --git a/gdb/shnbsd-tdep.c b/gdb/shnbsd-tdep.c
index f915d2a..7928dfd 100644
--- a/gdb/shnbsd-tdep.c
+++ b/gdb/shnbsd-tdep.c
@@ -167,7 +167,7 @@
 };
 
 static int
-shnbsd_pc_in_sigtramp (CORE_ADDR pc, char *func_name)
+shnbsd_pc_in_sigtramp (CORE_ADDR pc, const char *func_name)
 {
   /* FIXME: Need to add support for kernel-provided signal trampolines.  */
   return (nbsd_pc_in_sigtramp (pc, func_name));
diff --git a/gdb/signals/signals.c b/gdb/signals/signals.c
index ca46a9e..622c38a 100644
--- a/gdb/signals/signals.c
+++ b/gdb/signals/signals.c
@@ -240,7 +240,7 @@
 
 /* Given a name, return its signal.  */
 enum target_signal
-target_signal_from_name (char *name)
+target_signal_from_name (const char *name)
 {
   enum target_signal sig;
 
diff --git a/gdb/solib.c b/gdb/solib.c
index 289b84f..43655e6 100644
--- a/gdb/solib.c
+++ b/gdb/solib.c
@@ -537,7 +537,8 @@
    FROM_TTY and TARGET are as described for update_solib_list, above.  */
 
 void
-solib_add (char *pattern, int from_tty, struct target_ops *target, int readsyms)
+solib_add (const char *pattern, int from_tty, struct target_ops *target,
+	   int readsyms)
 {
   struct so_list *gdb;
 
@@ -618,7 +619,7 @@
  */
 
 static void
-info_sharedlibrary_command (char *ignore, int from_tty)
+info_sharedlibrary_command (const char *ignore, int from_tty)
 {
   register struct so_list *so = NULL;	/* link map state variable */
   int header_done = 0;
@@ -824,7 +825,7 @@
  */
 
 static void
-sharedlibrary_command (char *args, int from_tty)
+sharedlibrary_command (const char *args, int from_tty)
 {
   dont_repeat ();
   solib_add (args, from_tty, (struct target_ops *) 0, 1);
@@ -843,14 +844,14 @@
    are not discarded.  Also called from remote.c.  */
 
 void
-no_shared_libraries (char *ignored, int from_tty)
+no_shared_libraries (const char *ignored, int from_tty)
 {
   objfile_purge_solibs ();
   do_clear_solib (NULL);
 }
 
 static void
-reload_shared_libraries (char *ignored, int from_tty)
+reload_shared_libraries (const char *ignored, int from_tty)
 {
   no_shared_libraries (NULL, from_tty);
   solib_add (NULL, from_tty, NULL, auto_solib_add);
diff --git a/gdb/solib.h b/gdb/solib.h
index 04be72d..06b335c 100644
--- a/gdb/solib.h
+++ b/gdb/solib.h
@@ -37,7 +37,7 @@
 #define SOLIB_ADD(filename, from_tty, targ, readsyms) \
     solib_add (filename, from_tty, targ, readsyms)
 
-extern void solib_add (char *, int, struct target_ops *, int);
+extern void solib_add (const char *, int, struct target_ops *, int);
 
 /* Function to be called when the inferior starts up, to discover the names
    of shared libraries that are dynamically linked, the base addresses to
@@ -199,6 +199,6 @@
 
 /* Discard symbols that were auto-loaded from shared libraries. */
 
-extern void no_shared_libraries (char *ignored, int from_tty);
+extern void no_shared_libraries (const char *ignored, int from_tty);
 
 #endif /* SOLIB_H */
diff --git a/gdb/source.c b/gdb/source.c
index c2269fa..eaf035d 100644
--- a/gdb/source.c
+++ b/gdb/source.c
@@ -74,17 +74,17 @@
 
 static int get_filename_and_charpos (struct symtab *, char **);
 
-static void reverse_search_command (char *, int);
+static void reverse_search_command (const char *, int);
 
-static void forward_search_command (char *, int);
+static void forward_search_command (const char *, int);
 
-static void line_info (char *, int);
+static void line_info (const char *, int);
 
 static void ambiguous_line_spec (struct symtabs_and_lines *);
 
-static void source_info (char *, int);
+static void source_info (const char *, int);
 
-static void show_directories (char *, int);
+static void show_directories (const char *, int);
 
 /* Path of directories to search for source files.
    Same format as the PATH environment variable's value.  */
@@ -303,7 +303,7 @@
 }
 
 static void
-show_directories (char *ignore, int from_tty)
+show_directories (const char *ignore, int from_tty)
 {
   puts_filtered ("Source directories searched: ");
   puts_filtered (source_path);
@@ -367,7 +367,7 @@
 /* Add zero or more directories to the front of the source path.  */
 
 void
-directory_command (char *dirname, int from_tty)
+directory_command (const char *dirname, int from_tty)
 {
   dont_repeat ();
   /* FIXME, this goes to "delete dir"... */
@@ -392,7 +392,7 @@
 /* Add zero or more directories to the front of an arbitrary path.  */
 
 void
-mod_path (char *dirname, char **which_path)
+mod_path (const char *dirname, char **which_path)
 {
   add_path (dirname, which_path, 1);
 }
@@ -404,15 +404,16 @@
    as space or tab. */
 
 void
-add_path (char *dirname, char **which_path, int parse_separators)
+add_path (const char *dir, char **which_path, int parse_separators)
 {
+  char *dirname;
   char *old = *which_path;
   int prefix = 0;
 
-  if (dirname == 0)
+  if (dir == NULL)
     return;
 
-  dirname = xstrdup (dirname);
+  dirname = xstrdup (dir);
   make_cleanup (xfree, dirname);
 
   do
@@ -592,7 +593,7 @@
 
 
 static void
-source_info (char *ignore, int from_tty)
+source_info (const char *ignore, int from_tty)
 {
   register struct symtab *s = current_source_symtab;
 
@@ -1251,7 +1252,7 @@
 /* Print info on range of pc's in a specified line.  */
 
 static void
-line_info (char *arg, int from_tty)
+line_info (const char *arg, int from_tty)
 {
   struct symtabs_and_lines sals;
   struct symtab_and_line sal;
@@ -1349,7 +1350,7 @@
 
 /* ARGSUSED */
 static void
-forward_search_command (char *regex, int from_tty)
+forward_search_command (const char *regex, int from_tty)
 {
   register int c;
   register int desc;
@@ -1445,7 +1446,7 @@
 
 /* ARGSUSED */
 static void
-reverse_search_command (char *regex, int from_tty)
+reverse_search_command (const char *regex, int from_tty)
 {
   register int c;
   register int desc;
diff --git a/gdb/sparc-tdep.c b/gdb/sparc-tdep.c
index 7f0ae4b..cf5d9c5 100644
--- a/gdb/sparc-tdep.c
+++ b/gdb/sparc-tdep.c
@@ -859,7 +859,7 @@
       if (raw_buffer != NULL)
 	{
 	  /* Put it back in target format.  */
-	  store_address (raw_buffer, REGISTER_RAW_SIZE (regnum), get_frame_pc (frame));
+	  store_unsigned_integer (raw_buffer, REGISTER_RAW_SIZE (regnum), get_frame_pc (frame));
 	}
       if (addrp != NULL)
 	*addrp = 0;
@@ -967,7 +967,7 @@
 	  if (raw_buffer != NULL)
 	    {
 	      /* Put it back in target format.  */
-	      store_address (raw_buffer, REGISTER_RAW_SIZE (regnum), addr);
+	      store_unsigned_integer (raw_buffer, REGISTER_RAW_SIZE (regnum), addr);
 	    }
 	  if (addrp != NULL)
 	    *addrp = 0;
diff --git a/gdb/stack.c b/gdb/stack.c
index 0a0aaac..d5c75d7 100644
--- a/gdb/stack.c
+++ b/gdb/stack.c
@@ -43,41 +43,41 @@
 
 /* Prototypes for exported functions. */
 
-void args_info (char *, int);
+void args_info (const char *, int);
 
-void locals_info (char *, int);
+void locals_info (const char *, int);
 
 void (*selected_frame_level_changed_hook) (int);
 
 void _initialize_stack (void);
 
-void return_command (char *, int);
+void return_command (const char *, int);
 
 /* Prototypes for local functions. */
 
-static void down_command (char *, int);
+static void down_command (const char *, int);
 
-static void down_silently_base (char *);
+static void down_silently_base (const char *);
 
-static void down_silently_command (char *, int);
+static void down_silently_command (const char *, int);
 
-static void up_command (char *, int);
+static void up_command (const char *, int);
 
-static void up_silently_base (char *);
+static void up_silently_base (const char *);
 
-static void up_silently_command (char *, int);
+static void up_silently_command (const char *, int);
 
-void frame_command (char *, int);
+void frame_command (const char *, int);
 
-static void current_frame_command (char *, int);
+static void current_frame_command (const char *, int);
 
-static void select_frame_command (char *, int);
+static void select_frame_command (const char *, int);
 
 static void print_frame_arg_vars (struct frame_info *, struct ui_file *);
 
-static void catch_info (char *, int);
+static void catch_info (const char *, int);
 
-static void args_plus_locals_info (char *, int);
+static void args_plus_locals_info (const char *, int);
 
 static void print_frame_label_vars (struct frame_info *, int,
 				    struct ui_file *);
@@ -99,11 +99,11 @@
 			 int args, 
 			 struct symtab_and_line sal);
 
-static void backtrace_command (char *, int);
+static void backtrace_command (const char *, int);
 
-struct frame_info *parse_frame_specification (char *);
+struct frame_info *parse_frame_specification (const char *);
 
-static void frame_info (char *, int);
+static void frame_info (const char *, int);
 
 extern int addressprint;	/* Print addresses, or stay symbolic only? */
 
@@ -486,7 +486,7 @@
    this function never returns NULL).  */
 
 struct frame_info *
-parse_frame_specification (char *frame_exp)
+parse_frame_specification (const char *frame_exp)
 {
   int numargs = 0;
 #define	MAXARGS	4
@@ -495,7 +495,8 @@
 
   if (frame_exp)
     {
-      char *addr_string, *p;
+      char *addr_string;
+      const char *p;
       struct cleanup *tmp_cleanup;
 
       while (*frame_exp == ' ')
@@ -604,7 +605,7 @@
    This means absolutely all information in the frame is printed.  */
 
 static void
-frame_info (char *addr_exp, int from_tty)
+frame_info (const char *addr_exp, int from_tty)
 {
   struct frame_info *fi;
   struct symtab_and_line sal;
@@ -897,10 +898,10 @@
 
 /* Print briefly all stack frames or just the innermost COUNT frames.  */
 
-static void backtrace_command_1 (char *count_exp, int show_locals,
+static void backtrace_command_1 (const char *count_exp, int show_locals,
 				 int from_tty);
 static void
-backtrace_command_1 (char *count_exp, int show_locals, int from_tty)
+backtrace_command_1 (const char *count_exp, int show_locals, int from_tty)
 {
   struct frame_info *fi;
   register int count;
@@ -997,12 +998,12 @@
 }
 
 static void
-backtrace_command (char *arg, int from_tty)
+backtrace_command (const char *arg, int from_tty)
 {
   struct cleanup *old_chain = (struct cleanup *) NULL;
   char **argv = (char **) NULL;
   int argIndicatingFullTrace = (-1), totArgLen = 0, argc = 0;
-  char *argPtr = arg;
+  const char *argPtr = arg;
 
   if (arg != (char *) NULL)
     {
@@ -1061,9 +1062,9 @@
     do_cleanups (old_chain);
 }
 
-static void backtrace_full_command (char *arg, int from_tty);
+static void backtrace_full_command (const char *arg, int from_tty);
 static void
-backtrace_full_command (char *arg, int from_tty)
+backtrace_full_command (const char *arg, int from_tty)
 {
   backtrace_command_1 (arg, 1, from_tty);
 }
@@ -1253,7 +1254,7 @@
 
 /* ARGSUSED */
 void
-locals_info (char *args, int from_tty)
+locals_info (const char *args, int from_tty)
 {
   if (!deprecated_selected_frame)
     error ("No frame selected.");
@@ -1261,7 +1262,7 @@
 }
 
 static void
-catch_info (char *ignore, int from_tty)
+catch_info (const char *ignore, int from_tty)
 {
   struct symtab_and_line *sal;
 
@@ -1349,7 +1350,7 @@
 }
 
 void
-args_info (char *ignore, int from_tty)
+args_info (const char *ignore, int from_tty)
 {
   if (!deprecated_selected_frame)
     error ("No frame selected.");
@@ -1358,7 +1359,7 @@
 
 
 static void
-args_plus_locals_info (char *ignore, int from_tty)
+args_plus_locals_info (const char *ignore, int from_tty)
 {
   args_info (ignore, from_tty);
   locals_info (ignore, from_tty);
@@ -1465,7 +1466,7 @@
 }
 
 static void
-select_frame_command (char *level_exp, int from_tty)
+select_frame_command (const char *level_exp, int from_tty)
 {
   struct frame_info *frame;
   int level = frame_relative_level (deprecated_selected_frame);
@@ -1485,7 +1486,7 @@
    frame.  */
 
 void
-frame_command (char *level_exp, int from_tty)
+frame_command (const char *level_exp, int from_tty)
 {
   select_frame_command (level_exp, from_tty);
   print_stack_frame (deprecated_selected_frame,
@@ -1495,7 +1496,7 @@
 /* The XDB Compatibility command to print the current frame. */
 
 static void
-current_frame_command (char *level_exp, int from_tty)
+current_frame_command (const char *level_exp, int from_tty)
 {
   if (target_has_stack == 0 || deprecated_selected_frame == 0)
     error ("No stack.");
@@ -1508,7 +1509,7 @@
 
 /* ARGSUSED */
 static void
-up_silently_base (char *count_exp)
+up_silently_base (const char *count_exp)
 {
   register struct frame_info *fi;
   int count = 1, count1;
@@ -1527,13 +1528,13 @@
 }
 
 static void
-up_silently_command (char *count_exp, int from_tty)
+up_silently_command (const char *count_exp, int from_tty)
 {
   up_silently_base (count_exp);
 }
 
 static void
-up_command (char *count_exp, int from_tty)
+up_command (const char *count_exp, int from_tty)
 {
   up_silently_base (count_exp);
   print_stack_frame (deprecated_selected_frame,
@@ -1545,7 +1546,7 @@
 
 /* ARGSUSED */
 static void
-down_silently_base (char *count_exp)
+down_silently_base (const char *count_exp)
 {
   register struct frame_info *frame;
   int count = -1, count1;
@@ -1574,13 +1575,13 @@
 
 /* ARGSUSED */
 static void
-down_silently_command (char *count_exp, int from_tty)
+down_silently_command (const char *count_exp, int from_tty)
 {
   down_silently_base (count_exp);
 }
 
 static void
-down_command (char *count_exp, int from_tty)
+down_command (const char *count_exp, int from_tty)
 {
   down_silently_base (count_exp);
   print_stack_frame (deprecated_selected_frame,
@@ -1588,7 +1589,7 @@
 }
 
 void
-return_command (char *retval_exp, int from_tty)
+return_command (const char *retval_exp, int from_tty)
 {
   struct symbol *thisfun;
   CORE_ADDR selected_frame_addr;
@@ -1693,9 +1694,8 @@
   CORE_ADDR low, high;
 };
 
-static void func_command (char *arg, int from_tty);
 static void
-func_command (char *arg, int from_tty)
+func_command (const char *arg, int from_tty)
 {
   struct frame_info *fp;
   int found = 0;
@@ -1714,8 +1714,7 @@
   for (i = 0; (i < sals.nelts && !found); i++)
     {
       if (sals.sals[i].pc == (CORE_ADDR) 0 ||
-	  find_pc_partial_function (sals.sals[i].pc,
-				    (char **) NULL,
+	  find_pc_partial_function (sals.sals[i].pc, NULL,
 				    &func_bounds[i].low,
 				    &func_bounds[i].high) == 0)
 	{
diff --git a/gdb/symfile.c b/gdb/symfile.c
index 7d7886a..6696aa2 100644
--- a/gdb/symfile.c
+++ b/gdb/symfile.c
@@ -79,7 +79,7 @@
 			    unsigned long section_size, 
 			    unsigned long total_sent, 
 			    unsigned long total_size);
-void (*pre_add_symbol_hook) (char *);
+void (*pre_add_symbol_hook) (const char *);
 void (*post_add_symbol_hook) (void);
 void (*target_new_objfile_hook) (struct objfile *);
 
@@ -101,19 +101,19 @@
 
 static void set_initial_language (void);
 
-static void load_command (char *, int);
+static void load_command (const char *, int);
 
-static void symbol_file_add_main_1 (char *args, int from_tty, int flags);
+static void symbol_file_add_main_1 (const char *args, int from_tty, int flags);
 
-static void add_symbol_file_command (char *, int);
+static void add_symbol_file_command (const char *, int);
 
-static void add_shared_symbol_files_command (char *, int);
+static void add_shared_symbol_files_command (const char *, int);
 
 static void reread_separate_symbols (struct objfile *objfile);
 
 static void cashier_psymtab (struct partial_symtab *);
 
-bfd *symfile_bfd_open (char *);
+bfd *symfile_bfd_open (const char *);
 
 int get_section_index (struct objfile *, char *);
 
@@ -125,21 +125,21 @@
 
 static int overlay_is_mapped (struct obj_section *);
 
-void list_overlays_command (char *, int);
+void list_overlays_command (const char *, int);
 
-void map_overlay_command (char *, int);
+void map_overlay_command (const char *, int);
 
-void unmap_overlay_command (char *, int);
+void unmap_overlay_command (const char *, int);
 
-static void overlay_auto_command (char *, int);
+static void overlay_auto_command (const char *, int);
 
-static void overlay_manual_command (char *, int);
+static void overlay_manual_command (const char *, int);
 
-static void overlay_off_command (char *, int);
+static void overlay_off_command (const char *, int);
 
-static void overlay_load_command (char *, int);
+static void overlay_load_command (const char *, int);
 
-static void overlay_command (char *, int);
+static void overlay_command (const char *, int);
 
 static void simple_free_overlay_table (void);
 
@@ -151,9 +151,9 @@
 
 static void add_filename_language (char *ext, enum language lang);
 
-static void set_ext_lang_command (char *args, int from_tty);
+static void set_ext_lang_command (const char *args, int from_tty);
 
-static void info_ext_lang_command (char *args, int from_tty);
+static void info_ext_lang_command (const char *args, int from_tty);
 
 static char *find_separate_debug_file (struct objfile *objfile);
 
@@ -846,7 +846,7 @@
    Upon success, returns a pointer to the objfile that was added.
    Upon failure, jumps back to command level (never returns). */
 static struct objfile *
-symbol_file_add_with_addrs_or_offsets (char *name, int from_tty,
+symbol_file_add_with_addrs_or_offsets (const char *name, int from_tty,
                                        struct section_addr_info *addrs,
                                        struct section_offsets *offsets,
                                        int num_offsets,
@@ -995,7 +995,8 @@
    loaded file.  See symbol_file_add_with_addrs_or_offsets's comments
    for details.  */
 struct objfile *
-symbol_file_add (char *name, int from_tty, struct section_addr_info *addrs,
+symbol_file_add (const char *name, int from_tty,
+		 struct section_addr_info *addrs,
 		 int mainline, int flags)
 {
   return symbol_file_add_with_addrs_or_offsets (name, from_tty, addrs, 0, 0, 
@@ -1012,13 +1013,13 @@
    command itself.  */
    
 void
-symbol_file_add_main (char *args, int from_tty)
+symbol_file_add_main (const char *args, int from_tty)
 {
   symbol_file_add_main_1 (args, from_tty, 0);
 }
 
 static void
-symbol_file_add_main_1 (char *args, int from_tty, int flags)
+symbol_file_add_main_1 (const char *args, int from_tty, int flags)
 {
   symbol_file_add (args, from_tty, NULL, 1, flags);
 
@@ -1212,7 +1213,7 @@
    and pass that to symbol_file_add(). This is no longer supported. */
 
 void
-symbol_file_command (char *args, int from_tty)
+symbol_file_command (const char *args, int from_tty)
 {
   char **argv;
   char *name = NULL;
@@ -1298,15 +1299,12 @@
    In case of trouble, error() is called.  */
 
 bfd *
-symfile_bfd_open (char *name)
+symfile_bfd_open (const char *n)
 {
   bfd *sym_bfd;
   int desc;
   char *absolute_name;
-
-
-
-  name = tilde_expand (name);	/* Returns 1st new malloc'd copy */
+  char *name = tilde_expand (n);	/* Returns 1st new malloc'd copy */
 
   /* Look down path for it, allocate 2nd new malloc'd copy.  */
   desc = openp (getenv ("PATH"), 1, name, O_RDONLY | O_BINARY, 0, &absolute_name);
@@ -1412,7 +1410,7 @@
 /* This function runs the load command of our current target.  */
 
 static void
-load_command (char *arg, int from_tty)
+load_command (const char *arg, int from_tty)
 {
   if (arg == NULL)
     arg = get_exec_file (1);
@@ -1547,7 +1545,7 @@
 }
 
 void
-generic_load (char *args, int from_tty)
+generic_load (const char *args, int from_tty)
 {
   asection *s;
   bfd *loadfile_bfd;
@@ -1683,11 +1681,11 @@
 
 /* ARGSUSED */
 static void
-add_symbol_file_command (char *args, int from_tty)
+add_symbol_file_command (const char *args, int from_tty)
 {
   char *filename = NULL;
   int flags = OBJF_USERLOADED;
-  char *arg;
+  const char *arg;
   int expecting_option = 0;
   int section_index = 0;
   int argcnt = 0;
@@ -1698,8 +1696,8 @@
 
   struct
   {
-    char *name;
-    char *value;
+    const char *name;
+    const char *value;
   } sect_opts[SECT_OFF_MAX];
 
   struct section_addr_info section_addrs;
@@ -1802,8 +1800,8 @@
   for (i = 0; i < section_index; i++)
     {
       CORE_ADDR addr;
-      char *val = sect_opts[i].value;
-      char *sec = sect_opts[i].name;
+      const char *val = sect_opts[i].value;
+      const char *sec = sect_opts[i].name;
  
       val = sect_opts[i].value;
       if (val[0] == '0' && val[1] == 'x')
@@ -1839,7 +1837,7 @@
 }
 
 static void
-add_shared_symbol_files_command (char *args, int from_tty)
+add_shared_symbol_files_command (const char *args, int from_tty)
 {
 #ifdef ADD_SHARED_SYMBOL_FILES
   ADD_SHARED_SYMBOL_FILES (args, from_tty);
@@ -2156,7 +2154,7 @@
 static char *ext_args;
 
 static void
-set_ext_lang_command (char *args, int from_tty)
+set_ext_lang_command (const char *args, int from_tty)
 {
   int i;
   char *cp = ext_args;
@@ -2213,7 +2211,7 @@
 }
 
 static void
-info_ext_lang_command (char *args, int from_tty)
+info_ext_lang_command (const char *args, int from_tty)
 {
   int i;
 
@@ -3107,7 +3105,7 @@
    Print a list of mapped sections and their PC ranges */
 
 void
-list_overlays_command (char *args, int from_tty)
+list_overlays_command (const char *args, int from_tty)
 {
   int nmapped = 0;
   struct objfile *objfile;
@@ -3146,7 +3144,7 @@
    Mark the named section as mapped (ie. residing at its VMA address).  */
 
 void
-map_overlay_command (char *args, int from_tty)
+map_overlay_command (const char *args, int from_tty)
 {
   struct objfile *objfile, *objfile2;
   struct obj_section *sec, *sec2;
@@ -3197,7 +3195,7 @@
    (ie. resident in its LMA address range, rather than the VMA range).  */
 
 void
-unmap_overlay_command (char *args, int from_tty)
+unmap_overlay_command (const char *args, int from_tty)
 {
   struct objfile *objfile;
   struct obj_section *sec;
@@ -3227,7 +3225,7 @@
    Possibly this should be done via a set/show command. */
 
 static void
-overlay_auto_command (char *args, int from_tty)
+overlay_auto_command (const char *args, int from_tty)
 {
   overlay_debugging = ovly_auto;
   enable_overlay_breakpoints ();
@@ -3240,7 +3238,7 @@
    Possibly this should be done via a set/show command. */
 
 static void
-overlay_manual_command (char *args, int from_tty)
+overlay_manual_command (const char *args, int from_tty)
 {
   overlay_debugging = ovly_on;
   disable_overlay_breakpoints ();
@@ -3253,7 +3251,7 @@
    Possibly this should be done via a set/show command. */
 
 static void
-overlay_off_command (char *args, int from_tty)
+overlay_off_command (const char *args, int from_tty)
 {
   overlay_debugging = ovly_off;
   disable_overlay_breakpoints ();
@@ -3262,7 +3260,7 @@
 }
 
 static void
-overlay_load_command (char *args, int from_tty)
+overlay_load_command (const char *args, int from_tty)
 {
   if (target_overlay_update)
     (*target_overlay_update) (NULL);
@@ -3277,7 +3275,7 @@
 struct cmd_list_element *overlaylist;
 
 static void
-overlay_command (char *args, int from_tty)
+overlay_command (const char *args, int from_tty)
 {
   printf_unfiltered
     ("\"overlay\" must be followed by the name of an overlay command.\n");
diff --git a/gdb/symfile.h b/gdb/symfile.h
index 0e2f1ef..5a11224 100644
--- a/gdb/symfile.h
+++ b/gdb/symfile.h
@@ -74,7 +74,7 @@
   struct other_sections
   {
     CORE_ADDR addr;
-    char *name;
+    const char *name;
     int sectindex;
   } other[MAX_SECTIONS];
 };
@@ -182,7 +182,7 @@
 
 extern void new_symfile_objfile (struct objfile *, int, int);
 
-extern struct objfile *symbol_file_add (char *, int,
+extern struct objfile *symbol_file_add (const char *, int,
 					struct section_addr_info *, int, int);
 
 /* Build (allocate and populate) a section_addr_info struct from
@@ -256,7 +256,7 @@
 
 extern void find_lowest_section (bfd *, asection *, void *);
 
-extern bfd *symfile_bfd_open (char *);
+extern bfd *symfile_bfd_open (const char *);
 
 extern int get_section_index (struct objfile *, char *);
 
@@ -296,7 +296,7 @@
 extern CORE_ADDR symbol_overlayed_address (CORE_ADDR, asection *);
 
 /* Load symbols from a file. */
-extern void symbol_file_add_main (char *args, int from_tty);
+extern void symbol_file_add_main (const char *args, int from_tty);
 
 /* Clear GDB symbol tables. */
 extern void symbol_file_clear (int from_tty);
diff --git a/gdb/symtab.c b/gdb/symtab.c
index 2c46f9d..cdd31a1 100644
--- a/gdb/symtab.c
+++ b/gdb/symtab.c
@@ -58,15 +58,15 @@
 
 static void completion_list_add_name (char *, char *, int, char *, char *);
 
-static void rbreak_command (char *, int);
+static void rbreak_command (const char *, int);
 
-static void types_info (char *, int);
+static void types_info (const char *, int);
 
-static void functions_info (char *, int);
+static void functions_info (const char *, int);
 
-static void variables_info (char *, int);
+static void variables_info (const char *, int);
 
-static void sources_info (char *, int);
+static void sources_info (const char *, int);
 
 static void output_source_filename (char *, int *);
 
@@ -74,7 +74,7 @@
 
 /* This one is used by linespec.c */
 
-char *operator_chars (char *p, char **end);
+const char *operator_chars (const char *p, const char **end);
 
 static struct partial_symbol *lookup_partial_symbol (struct partial_symtab *,
 						     const char *,
@@ -139,7 +139,7 @@
 
 static void print_msymbol_info (struct minimal_symbol *);
 
-static void symtab_symbol_info (char *, namespace_enum, int);
+static void symtab_symbol_info (const char *, namespace_enum, int);
 
 static void overload_list_add_symbol (struct symbol *sym, char *oload_name);
 
@@ -2530,8 +2530,8 @@
    some legitimate operator text, return a pointer to the
    beginning of the substring of the operator text.
    Otherwise, return "".  */
-char *
-operator_chars (char *p, char **end)
+const char *
+operator_chars (const char *p, const char **end)
 {
   *end = "";
   if (strncmp (p, "operator", 8))
@@ -2551,7 +2551,7 @@
 
   if (isalpha (*p) || *p == '_' || *p == '$')
     {
-      register char *q = p + 1;
+      const char *q = p + 1;
       while (isalnum (*q) || *q == '_' || *q == '$')
 	q++;
       *end = q;
@@ -2739,7 +2739,7 @@
 }
 
 static void
-sources_info (char *ignore, int from_tty)
+sources_info (const char *ignore, int from_tty)
 {
   register struct symtab *s;
   register struct partial_symtab *ps;
@@ -2880,8 +2880,8 @@
    separately alphabetized.
  */
 void
-search_symbols (char *regexp, namespace_enum kind, int nfiles, char *files[],
-		struct symbol_search **matches)
+search_symbols (const char *regexp, namespace_enum kind, int nfiles,
+		char *files[], struct symbol_search **matches)
 {
   register struct symtab *s;
   register struct partial_symtab *ps;
@@ -2934,8 +2934,8 @@
          This is just a courtesy to make the matching less sensitive
          to how many spaces the user leaves between 'operator'
          and <TYPENAME> or <OPERATOR>. */
-      char *opend;
-      char *opname = operator_chars (regexp, &opend);
+      const char *opend;
+      const char *opname = operator_chars (regexp, &opend);
       if (*opname)
 	{
 	  int fix = -1;		/* -1 means ok; otherwise number of spaces needed. */
@@ -3237,7 +3237,7 @@
    matches.
  */
 static void
-symtab_symbol_info (char *regexp, namespace_enum kind, int from_tty)
+symtab_symbol_info (const char *regexp, namespace_enum kind, int from_tty)
 {
   static char *classnames[]
   =
@@ -3285,20 +3285,20 @@
 }
 
 static void
-variables_info (char *regexp, int from_tty)
+variables_info (const char *regexp, int from_tty)
 {
   symtab_symbol_info (regexp, VARIABLES_NAMESPACE, from_tty);
 }
 
 static void
-functions_info (char *regexp, int from_tty)
+functions_info (const char *regexp, int from_tty)
 {
   symtab_symbol_info (regexp, FUNCTIONS_NAMESPACE, from_tty);
 }
 
 
 static void
-types_info (char *regexp, int from_tty)
+types_info (const char *regexp, int from_tty)
 {
   symtab_symbol_info (regexp, TYPES_NAMESPACE, from_tty);
 }
@@ -3306,13 +3306,13 @@
 /* Breakpoint all functions matching regular expression. */
 
 void
-rbreak_command_wrapper (char *regexp, int from_tty)
+rbreak_command_wrapper (const char *regexp, int from_tty)
 {
   rbreak_command (regexp, from_tty);
 }
 
 static void
-rbreak_command (char *regexp, int from_tty)
+rbreak_command (const char *regexp, int from_tty)
 {
   struct symbol_search *ss;
   struct symbol_search *p;
@@ -4162,7 +4162,7 @@
 /* End of overload resolution functions */
 
 struct symtabs_and_lines
-decode_line_spec (char *string, int funfirstline)
+decode_line_spec (const char *string, int funfirstline)
 {
   struct symtabs_and_lines sals;
   struct symtab_and_line cursal;
diff --git a/gdb/symtab.h b/gdb/symtab.h
index 4330b96..fb5887a 100644
--- a/gdb/symtab.h
+++ b/gdb/symtab.h
@@ -1029,13 +1029,13 @@
 
 /* lookup function from address, return name, start addr and end addr */
 
-extern int find_pc_partial_function (CORE_ADDR, char **, CORE_ADDR *,
+extern int find_pc_partial_function (CORE_ADDR, const char **, CORE_ADDR *,
 				     CORE_ADDR *);
 
 extern void clear_pc_function_cache (void);
 
-extern int find_pc_sect_partial_function (CORE_ADDR, asection *,
-					  char **, CORE_ADDR *, CORE_ADDR *);
+extern int find_pc_sect_partial_function (CORE_ADDR, asection *, const char **,
+					  CORE_ADDR *, CORE_ADDR *);
 
 /* from symtab.c: */
 
@@ -1219,29 +1219,29 @@
 /* Given a string, return the line specified by it.  For commands like "list"
    and "breakpoint".  */
 
-extern struct symtabs_and_lines decode_line_spec (char *, int);
+extern struct symtabs_and_lines decode_line_spec (const char *, int);
 
-extern struct symtabs_and_lines decode_line_spec_1 (char *, int);
+extern struct symtabs_and_lines decode_line_spec_1 (const char *, int);
 
 /* Symmisc.c */
 
-void maintenance_print_symbols (char *, int);
+void maintenance_print_symbols (const char *, int);
 
-void maintenance_print_psymbols (char *, int);
+void maintenance_print_psymbols (const char *, int);
 
-void maintenance_print_msymbols (char *, int);
+void maintenance_print_msymbols (const char *, int);
 
-void maintenance_print_objfiles (char *, int);
+void maintenance_print_objfiles (const char *, int);
 
-void maintenance_info_symtabs (char *, int);
+void maintenance_info_symtabs (const char *, int);
 
-void maintenance_info_psymtabs (char *, int);
+void maintenance_info_psymtabs (const char *, int);
 
-void maintenance_check_symtabs (char *, int);
+void maintenance_check_symtabs (const char *, int);
 
 /* maint.c */
 
-void maintenance_print_statistics (char *, int);
+void maintenance_print_statistics (const char *, int);
 
 extern void free_symtab (struct symtab *);
 
@@ -1320,7 +1320,7 @@
   struct symbol_search *next;
 };
 
-extern void search_symbols (char *, namespace_enum, int, char **,
+extern void search_symbols (const char *, namespace_enum, int, char **,
 			    struct symbol_search **);
 extern void free_search_symbols (struct symbol_search *);
 extern struct cleanup *make_cleanup_free_search_symbols (struct symbol_search
diff --git a/gdb/target.c b/gdb/target.c
index fd0165a..bfbeda5 100644
--- a/gdb/target.c
+++ b/gdb/target.c
@@ -38,17 +38,13 @@
 
 extern int errno;
 
-static void target_info (char *, int);
-
 static void cleanup_target (struct target_ops *);
 
 static void maybe_kill_then_create_inferior (char *, char *, char **);
 
-static void maybe_kill_then_attach (char *, int);
-
 static void kill_or_be_killed (int);
 
-static void default_terminal_info (char *, int);
+static void default_terminal_info (const char *, int);
 
 static int default_region_size_ok_for_hw_watchpoint (int);
 
@@ -66,7 +62,7 @@
 
 void target_ignore (void);
 
-static void target_command (char *, int);
+static void target_command (const char *, int);
 
 static struct target_ops *find_default_run_target (char *);
 
@@ -87,13 +83,13 @@
 
 static void init_dummy_target (void);
 
-static void debug_to_open (char *, int);
+static void debug_to_open (const char *, int);
 
 static void debug_to_close (int);
 
-static void debug_to_attach (char *, int);
+static void debug_to_attach (const char *, int);
 
-static void debug_to_detach (char *, int);
+static void debug_to_detach (const char *, int);
 
 static void debug_to_resume (ptid_t, int, enum target_signal);
 
@@ -140,12 +136,10 @@
 
 static void debug_to_terminal_ours (void);
 
-static void debug_to_terminal_info (char *, int);
+static void debug_to_terminal_info (const char *, int);
 
 static void debug_to_kill (void);
 
-static void debug_to_load (char *, int);
-
 static int debug_to_lookup_symbol (char *, CORE_ADDR *);
 
 static void debug_to_create_inferior (char *, char *, char **);
@@ -206,7 +200,7 @@
 
 /* ARGSUSED */
 static void
-target_command (char *arg, int from_tty)
+target_command (const char *arg, int from_tty)
 {
   fputs_filtered ("Argument required (target name).  Try `help target'\n",
 		  gdb_stdout);
@@ -252,7 +246,7 @@
 }
 
 void
-target_load (char *arg, int from_tty)
+target_load (const char *arg, int from_tty)
 {
   dcache_invalidate (target_dcache);
   (*current_target.to_load) (arg, from_tty);
@@ -300,7 +294,7 @@
 
 /* ARGSUSED */
 static void
-default_terminal_info (char *args, int from_tty)
+default_terminal_info (const char *args, int from_tty)
 {
   printf_unfiltered ("No saved terminal information.\n");
 }
@@ -333,7 +327,7 @@
 }
 
 static void
-maybe_kill_then_attach (char *args, int from_tty)
+maybe_kill_then_attach (const char *args, int from_tty)
 {
   kill_or_be_killed (from_tty);
   target_attach (args, from_tty);
@@ -358,7 +352,7 @@
     t->field = value
 
   de_fault (to_open, 
-	    (void (*) (char *, int)) 
+	    (void (*) (const char *, int)) 
 	    tcomplain);
   de_fault (to_close, 
 	    (void (*) (int)) 
@@ -369,7 +363,7 @@
 	    (void (*) (int)) 
 	    target_ignore);
   de_fault (to_detach, 
-	    (void (*) (char *, int)) 
+	    (void (*) (const char *, int)) 
 	    target_ignore);
   de_fault (to_resume, 
 	    (void (*) (ptid_t, int, enum target_signal)) 
@@ -443,7 +437,7 @@
 	    (void (*) (void)) 
 	    noprocess);
   de_fault (to_load, 
-	    (void (*) (char *, int)) 
+	    (void (*) (const char *, int)) 
 	    tcomplain);
   de_fault (to_lookup_symbol, 
 	    (int (*) (char *, CORE_ADDR *)) 
@@ -504,7 +498,7 @@
 	    (void (*) (void)) 
 	    target_ignore);
   de_fault (to_rcmd, 
-	    (void (*) (char *, struct ui_file *)) 
+	    (void (*) (const char *, struct ui_file *)) 
 	    tcomplain);
   de_fault (to_enable_exception_callback, 
 	    (struct symtab_and_line * (*) (enum exception_event_kind, int)) 
@@ -1073,7 +1067,7 @@
 
 /* ARGSUSED */
 static void
-target_info (char *args, int from_tty)
+target_info (const char *args, int from_tty)
 {
   struct target_ops *t;
   struct target_stack_item *item;
@@ -1131,7 +1125,7 @@
 /* Detach a target after doing deferred register stores.  */
 
 void
-target_detach (char *args, int from_tty)
+target_detach (const char *args, int from_tty)
 {
   /* Handle any optimized stores to the inferior.  */
 #ifdef DO_DEFERRED_STORES
@@ -1193,7 +1187,7 @@
 }
 
 void
-find_default_attach (char *args, int from_tty)
+find_default_attach (const char *args, int from_tty)
 {
   struct target_ops *t;
 
@@ -1521,7 +1515,7 @@
 static struct target_ops debug_target;
 
 static void
-debug_to_open (char *args, int from_tty)
+debug_to_open (const char *args, int from_tty)
 {
   debug_target.to_open (args, from_tty);
 
@@ -1537,7 +1531,7 @@
 }
 
 static void
-debug_to_attach (char *args, int from_tty)
+debug_to_attach (const char *args, int from_tty)
 {
   debug_target.to_attach (args, from_tty);
 
@@ -1554,7 +1548,7 @@
 }
 
 static void
-debug_to_detach (char *args, int from_tty)
+debug_to_detach (const char *args, int from_tty)
 {
   debug_target.to_detach (args, from_tty);
 
@@ -1902,7 +1896,7 @@
 }
 
 static void
-debug_to_terminal_info (char *arg, int from_tty)
+debug_to_terminal_info (const char *arg, int from_tty)
 {
   debug_target.to_terminal_info (arg, from_tty);
 
@@ -1919,7 +1913,7 @@
 }
 
 static void
-debug_to_load (char *args, int from_tty)
+debug_to_load (const char *args, int from_tty)
 {
   debug_target.to_load (args, from_tty);
 
@@ -2152,7 +2146,7 @@
 }
 
 static void
-debug_to_rcmd (char *command,
+debug_to_rcmd (const char *command,
 	       struct ui_file *outbuf)
 {
   debug_target.to_rcmd (command, outbuf);
@@ -2262,14 +2256,13 @@
 core-file, and process, if any), as well as the symbol file name.";
 
 static void
-do_monitor_command (char *cmd,
-		 int from_tty)
+do_monitor_command (const char *cmd, int from_tty)
 {
   if ((current_target.to_rcmd
-       == (void (*) (char *, struct ui_file *)) tcomplain)
+       == (void (*) (const char *, struct ui_file *)) tcomplain)
       || (current_target.to_rcmd == debug_to_rcmd
 	  && (debug_target.to_rcmd
-	      == (void (*) (char *, struct ui_file *)) tcomplain)))
+	      == (void (*) (const char *, struct ui_file *)) tcomplain)))
     {
       error ("\"monitor\" command not supported by this target.\n");
     }
diff --git a/gdb/target.h b/gdb/target.h
index e757b67..15bfa48 100644
--- a/gdb/target.h
+++ b/gdb/target.h
@@ -173,7 +173,7 @@
 extern char *target_signal_to_name (enum target_signal);
 
 /* Given a name (SIGHUP, etc.), return its signal.  */
-enum target_signal target_signal_from_name (char *);
+enum target_signal target_signal_from_name (const char *);
 
 
 /* If certain kinds of activity happen, target_wait should perform
@@ -193,11 +193,11 @@
     char *to_doc;		/* Documentation.  Does not include trailing
 				   newline, and starts with a one-line descrip-
 				   tion (probably similar to to_longname).  */
-    void (*to_open) (char *, int);
+    void (*to_open) (const char *, int);
     void (*to_close) (int);
-    void (*to_attach) (char *, int);
+    void (*to_attach) (const char *, int);
     void (*to_post_attach) (int);
-    void (*to_detach) (char *, int);
+    void (*to_detach) (const char *, int);
     void (*to_resume) (ptid_t, int, enum target_signal);
     ptid_t (*to_wait) (ptid_t, struct target_waitstatus *);
     void (*to_post_wait) (ptid_t, int);
@@ -268,9 +268,9 @@
     void (*to_terminal_ours_for_output) (void);
     void (*to_terminal_ours) (void);
     void (*to_terminal_save_ours) (void);
-    void (*to_terminal_info) (char *, int);
+    void (*to_terminal_info) (const char *, int);
     void (*to_kill) (void);
-    void (*to_load) (char *, int);
+    void (*to_load) (const char *, int);
     int (*to_lookup_symbol) (char *, CORE_ADDR *);
     void (*to_create_inferior) (char *, char *, char **);
     void (*to_post_startup_inferior) (ptid_t);
@@ -293,7 +293,7 @@
     char *(*to_extra_thread_info) (struct thread_info *);
     void (*to_stop) (void);
     int (*to_query) (int /*char */ , char *, char *, int *);
-    void (*to_rcmd) (char *command, struct ui_file *output);
+    void (*to_rcmd) (const char *command, struct ui_file *output);
     struct symtab_and_line *(*to_enable_exception_callback) (enum
 							     exception_event_kind,
 							     int);
@@ -412,7 +412,7 @@
    typed by the user (e.g. a signal to send the process).  FROM_TTY
    says whether to be verbose or not.  */
 
-extern void target_detach (char *, int);
+extern void target_detach (const char *, int);
 
 /* Resume execution of the target process PTID.  STEP says whether to
    single-step or to run free; SIGGNAL is the signal to be given to
@@ -622,7 +622,7 @@
    to not only bring new code into the target process, but also to
    update GDB's symbol tables to match.  */
 
-extern void target_load (char *arg, int from_tty);
+extern void target_load (const 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
@@ -1136,7 +1136,7 @@
 
 extern void noprocess (void);
 
-extern void find_default_attach (char *, int);
+extern void find_default_attach (const char *, int);
 
 extern void find_default_create_inferior (char *, char *, char **);
 
diff --git a/gdb/thread.c b/gdb/thread.c
index 315f33b..84e5e8d 100644
--- a/gdb/thread.c
+++ b/gdb/thread.c
@@ -56,11 +56,11 @@
 
 static struct thread_info *find_thread_id (int num);
 
-static void thread_command (char *tidstr, int from_tty);
-static void thread_apply_all_command (char *, int);
+static void thread_command (const char *tidstr, int from_tty);
+static void thread_apply_all_command (const char *, int);
 static int thread_alive (struct thread_info *);
-static void info_threads_command (char *, int);
-static void thread_apply_command (char *, int);
+static void info_threads_command (const char *, int);
+static void thread_apply_command (const char *, int);
 static void restore_current_thread (ptid_t);
 static void switch_to_thread (ptid_t ptid);
 static void prune_threads (void);
@@ -412,7 +412,7 @@
  */
 
 static void
-info_threads_command (char *arg, int from_tty)
+info_threads_command (const char *arg, int from_tty)
 {
   struct thread_info *tp;
   ptid_t current_ptid;
@@ -536,7 +536,7 @@
  */
 
 static void
-thread_apply_all_command (char *cmd, int from_tty)
+thread_apply_all_command (const char *cmd, int from_tty)
 {
   struct thread_info *tp;
   struct cleanup *old_chain;
@@ -576,9 +576,9 @@
 }
 
 static void
-thread_apply_command (char *tidlist, int from_tty)
+thread_apply_command (const char *tidlist, int from_tty)
 {
-  char *cmd;
+  const char *cmd;
   char *p;
   struct cleanup *old_chain;
   struct cleanup *saved_cmd_cleanup_chain;
@@ -657,7 +657,7 @@
    if prefix of arg is `apply'.  */
 
 static void
-thread_command (char *tidstr, int from_tty)
+thread_command (const char *tidstr, int from_tty)
 {
   if (!tidstr)
     {
@@ -713,7 +713,7 @@
 }
 
 enum gdb_rc
-gdb_thread_select (struct ui_out *uiout, char *tidstr)
+gdb_thread_select (struct ui_out *uiout, const char *tidstr)
 {
   return catch_exceptions (uiout, do_captured_thread_select, tidstr,
 			   NULL, RETURN_MASK_ALL);
diff --git a/gdb/top.c b/gdb/top.c
index fea71df..b99cbd6 100644
--- a/gdb/top.c
+++ b/gdb/top.c
@@ -377,14 +377,14 @@
 	 void *func_args,
 	 int *func_val,
 	 enum return_reason *func_caught,
-	 char *errstring,
+	 const char *errstring,
 	 return_mask mask)
 {
   SIGJMP_BUF *saved_catch;
   SIGJMP_BUF catch;
   struct cleanup *saved_cleanup_chain;
-  char *saved_error_pre_print;
-  char *saved_quit_pre_print;
+  const char *saved_error_pre_print;
+  const char *saved_quit_pre_print;
   struct ui_out *saved_uiout;
 
   /* Return value from SIGSETJMP(): enum return_reason if error or
@@ -466,7 +466,7 @@
 catch_exceptions (struct ui_out *uiout,
 		  catch_exceptions_ftype *func,
 		  void *func_args,
-		  char *errstring,
+		  const char *errstring,
 		  return_mask mask)
 {
   int val;
@@ -493,7 +493,7 @@
 }
 
 int
-catch_errors (catch_errors_ftype *func, void *func_args, char *errstring,
+catch_errors (catch_errors_ftype *func, void *func_args, const char *errstring,
 	      return_mask mask)
 {
   int val;
@@ -508,11 +508,11 @@
 }
 
 struct captured_command_args
-  {
-    catch_command_errors_ftype *command;
-    char *arg;
-    int from_tty;
-  };
+{
+  catch_command_errors_ftype *command;
+  const char *arg;
+  int from_tty;
+};
 
 static int
 do_captured_command (void *data)
@@ -532,7 +532,7 @@
 
 int
 catch_command_errors (catch_command_errors_ftype * command,
-		      char *arg, int from_tty, return_mask mask)
+		      const char *arg, int from_tty, return_mask mask)
 {
   struct captured_command_args args;
   args.command = command;
@@ -633,12 +633,12 @@
    Pass FROM_TTY as second argument to the defining function.  */
 
 void
-execute_command (char *p, int from_tty)
+execute_command (const char *p, int from_tty)
 {
   register struct cmd_list_element *c;
   register enum language flang;
   static int warned = 0;
-  char *line;
+  const char *line;
   
   free_all_values ();
 
@@ -656,7 +656,7 @@
     p++;
   if (*p)
     {
-      char *arg;
+      const char *arg;
       line = p;
 
       c = lookup_cmd (&p, cmdlist, "", 0, 1);
@@ -1419,7 +1419,9 @@
   else
     /* formatted prompt */
     {
-      char fmt[40], *promptp, *outp, *tmp;
+      char fmt[40];
+      const char **promptp;
+      char *outp, *tmp;
       struct value *arg_val;
       DOUBLEST doubleval;
       LONGEST longval;
@@ -1738,7 +1740,7 @@
 
 /* ARGSUSED */
 static void
-dont_repeat_command (char *ignored, int from_tty)
+dont_repeat_command (const char *ignored, int from_tty)
 {
   *line = 0;			/* Can't call dont_repeat here because we're not
 				   necessarily reading from stdin.  */
@@ -1824,7 +1826,8 @@
 /* Called by do_setshow_command.  */
 /* ARGSUSED */
 static void
-set_history_size_command (char *args, int from_tty, struct cmd_list_element *c)
+set_history_size_command (const char *args, int from_tty,
+			  struct cmd_list_element *c)
 {
   if (history_size == INT_MAX)
     unstifle_history ();
diff --git a/gdb/top.h b/gdb/top.h
index ca0b3d1..20b0a70 100644
--- a/gdb/top.h
+++ b/gdb/top.h
@@ -33,8 +33,8 @@
 
 extern void print_gdb_version (struct ui_file *);
 
-extern void source_command (char *, int);
-extern void cd_command (char *, int);
+extern void source_command (const char *, int);
+extern void cd_command (const char *, int);
 extern void read_command_file (FILE *);
 extern void init_history (void);
 extern void command_loop (void);
@@ -43,9 +43,9 @@
 								   int));
 extern int quit_confirm (void);
 extern void quit_force (char *, int);
-extern void quit_command (char *, int);
+extern void quit_command (const char *, int);
 extern int quit_cover (void *);
-extern void execute_command (char *, int);
+extern void execute_command (const char *, int);
 
 /* This function returns a pointer to the string that is used
    by gdb for its command prompt. */
diff --git a/gdb/tracepoint.c b/gdb/tracepoint.c
index 17ee07c..8585790 100644
--- a/gdb/tracepoint.c
+++ b/gdb/tracepoint.c
@@ -125,24 +125,24 @@
 static struct cmd_list_element *tfindlist;
 
 /* ======= Important command functions: ======= */
-static void trace_command (char *, int);
-static void tracepoints_info (char *, int);
-static void delete_trace_command (char *, int);
-static void enable_trace_command (char *, int);
-static void disable_trace_command (char *, int);
-static void trace_pass_command (char *, int);
-static void trace_actions_command (char *, int);
-static void trace_start_command (char *, int);
-static void trace_stop_command (char *, int);
-static void trace_status_command (char *, int);
-static void trace_find_command (char *, int);
-static void trace_find_pc_command (char *, int);
-static void trace_find_tracepoint_command (char *, int);
-static void trace_find_line_command (char *, int);
-static void trace_find_range_command (char *, int);
-static void trace_find_outside_command (char *, int);
-static void tracepoint_save_command (char *, int);
-static void trace_dump_command (char *, int);
+static void trace_command (const char *, int);
+static void tracepoints_info (const char *, int);
+static void delete_trace_command (const char *, int);
+static void enable_trace_command (const char *, int);
+static void disable_trace_command (const char *, int);
+static void trace_pass_command (const char *, int);
+static void trace_actions_command (const char *, int);
+static void trace_start_command (const char *, int);
+static void trace_stop_command (const char *, int);
+static void trace_status_command (const char *, int);
+static void trace_find_command (const char *, int);
+static void trace_find_pc_command (const char *, int);
+static void trace_find_tracepoint_command (const char *, int);
+static void trace_find_line_command (const char *, int);
+static void trace_find_range_command (const char *, int);
+static void trace_find_outside_command (const char *, int);
+static void tracepoint_save_command (const char *, int);
+static void trace_dump_command (const char *, int);
 
 /* support routines */
 static void trace_mention (struct tracepoint *);
@@ -192,8 +192,7 @@
 
 /* Utility: wait for reply from stub, while accepting "O" packets */
 static char *
-remote_get_noisy_reply (char *buf,
-			long sizeof_buf)
+remote_get_noisy_reply (const char *buf, long sizeof_buf)
 {
   do				/* loop on reply from remote stub */
     {
@@ -375,13 +374,14 @@
 
 /* Set a tracepoint according to ARG (function, linenum or *address) */
 static void
-trace_command (char *arg, int from_tty)
+trace_command (const char *arg, int from_tty)
 {
   char **canonical = (char **) NULL;
   struct symtabs_and_lines sals;
   struct symtab_and_line sal;
   struct tracepoint *t;
-  char *addr_start = 0, *addr_end = 0;
+  const char *addr_start = 0;
+  const char *addr_end = 0;
   int i;
 
   if (!arg || !*arg)
@@ -448,7 +448,7 @@
 /* Print information on tracepoint number TPNUM_EXP, or all if omitted.  */
 
 static void
-tracepoints_info (char *tpnum_exp, int from_tty)
+tracepoints_info (const char *tpnum_exp, int from_tty)
 {
   struct tracepoint *t;
   struct action_line *action;
@@ -598,11 +598,11 @@
    if OPTIONAL_P is true, then if the argument is missing, the most
    recent tracepoint (tracepoint_count) is returned.  */
 struct tracepoint *
-get_tracepoint_by_number (char **arg, int multi_p, int optional_p)
+get_tracepoint_by_number (const char **arg, int multi_p, int optional_p)
 {
   struct tracepoint *t;
   int tpnum;
-  char *instring = arg == NULL ? NULL : *arg;
+  const char *instring = arg == NULL ? NULL : *arg;
 
   if (arg == NULL || *arg == NULL || ! **arg)
     {
@@ -638,7 +638,7 @@
 
 /* Utility: parse a list of tracepoint numbers, and call a func for each. */
 static void
-map_args_over_tracepoints (char *args, int from_tty,
+map_args_over_tracepoints (const char *args, int from_tty,
 			   enum tracepoint_opcode opcode)
 {
   struct tracepoint *t, *tmp;
@@ -659,7 +659,7 @@
 
 /* The 'enable trace' command enables tracepoints.  Not supported by all targets.  */
 static void
-enable_trace_command (char *args, int from_tty)
+enable_trace_command (const char *args, int from_tty)
 {
   dont_repeat ();
   map_args_over_tracepoints (args, from_tty, enable_op);
@@ -667,7 +667,7 @@
 
 /* The 'disable trace' command enables tracepoints.  Not supported by all targets.  */
 static void
-disable_trace_command (char *args, int from_tty)
+disable_trace_command (const char *args, int from_tty)
 {
   dont_repeat ();
   map_args_over_tracepoints (args, from_tty, disable_op);
@@ -675,7 +675,7 @@
 
 /* Remove a tracepoint (or all if no argument) */
 static void
-delete_trace_command (char *args, int from_tty)
+delete_trace_command (const char *args, int from_tty)
 {
   dont_repeat ();
   if (!args || !*args)		/* No args implies all tracepoints; */
@@ -694,7 +694,7 @@
    Also accepts special argument "all".  */
 
 static void
-trace_pass_command (char *args, int from_tty)
+trace_pass_command (const char *args, int from_tty)
 {
   struct tracepoint *t1 = (struct tracepoint *) -1, *t2;
   unsigned int count;
@@ -753,26 +753,26 @@
    which is always an error.  */
 
 static void
-end_actions_pseudocommand (char *args, int from_tty)
+end_actions_pseudocommand (const char *args, int from_tty)
 {
   error ("This command cannot be used at the top level.");
 }
 
 static void
-while_stepping_pseudocommand (char *args, int from_tty)
+while_stepping_pseudocommand (const char *args, int from_tty)
 {
   error ("This command can only be used in a tracepoint actions list.");
 }
 
 static void
-collect_pseudocommand (char *args, int from_tty)
+collect_pseudocommand (const char *args, int from_tty)
 {
   error ("This command can only be used in a tracepoint actions list.");
 }
 
 /* Enter a list of actions for a tracepoint.  */
 static void
-trace_actions_command (char *args, int from_tty)
+trace_actions_command (const char *args, int from_tty)
 {
   struct tracepoint *t;
   char tmpbuf[128];
@@ -911,7 +911,7 @@
   struct cmd_list_element *c;
   struct expression *exp = NULL;
   struct cleanup *old_chain = NULL;
-  char *p;
+  const char *p;
 
   for (p = *line; isspace ((int) *p);)
     p++;
@@ -999,7 +999,7 @@
     }
   else if (cmd_cfunc_eq (c, while_stepping_pseudocommand))
     {
-      char *steparg;		/* in case warning is necessary */
+      const char *steparg;		/* in case warning is necessary */
 
       while (isspace ((int) *p))
 	p++;
@@ -1476,7 +1476,7 @@
 		char ***stepping_actions)
 {
   static char tdp_buff[2048], step_buff[2048];
-  char *action_exp;
+  const char *action_exp;
   struct expression *exp = NULL;
   struct action_line *action;
   int i;
@@ -1708,7 +1708,7 @@
    Tell target to start a new trace experiment.  */
 
 static void
-trace_start_command (char *args, int from_tty)
+trace_start_command (const char *args, int from_tty)
 {				/* STUB_COMM MOSTLY_IMPLEMENTED */
   struct tracepoint *t;
   char buf[2048];
@@ -1808,7 +1808,7 @@
 
 /* tstop command */
 static void
-trace_stop_command (char *args, int from_tty)
+trace_stop_command (const char *args, int from_tty)
 {				/* STUB_COMM IS_IMPLEMENTED */
   if (target_is_remote ())
     {
@@ -1828,7 +1828,7 @@
 
 /* tstatus command */
 static void
-trace_status_command (char *args, int from_tty)
+trace_status_command (const char *args, int from_tty)
 {				/* STUB_COMM IS_IMPLEMENTED */
   if (target_is_remote ())
     {
@@ -1848,7 +1848,7 @@
 
 /* Worker function for the various flavors of the tfind command */
 static void
-finish_tfind_command (char *msg,
+finish_tfind_command (const char *msg,
 		      long sizeof_msg,
 		      int from_tty)
 {
@@ -1972,7 +1972,7 @@
 
 /* tfind command */
 static void
-trace_find_command (char *args, int from_tty)
+trace_find_command (const char *args, int from_tty)
 {				/* STUB_COMM PART_IMPLEMENTED */
   /* this should only be called with a numeric argument */
   int frameno = -1;
@@ -2013,28 +2013,28 @@
 
 /* tfind end */
 static void
-trace_find_end_command (char *args, int from_tty)
+trace_find_end_command (const char *args, int from_tty)
 {
   trace_find_command ("-1", from_tty);
 }
 
 /* tfind none */
 static void
-trace_find_none_command (char *args, int from_tty)
+trace_find_none_command (const char *args, int from_tty)
 {
   trace_find_command ("-1", from_tty);
 }
 
 /* tfind start */
 static void
-trace_find_start_command (char *args, int from_tty)
+trace_find_start_command (const char *args, int from_tty)
 {
   trace_find_command ("0", from_tty);
 }
 
 /* tfind pc command */
 static void
-trace_find_pc_command (char *args, int from_tty)
+trace_find_pc_command (const char *args, int from_tty)
 {				/* STUB_COMM PART_IMPLEMENTED */
   CORE_ADDR pc;
   char tmp[40];
@@ -2056,7 +2056,7 @@
 
 /* tfind tracepoint command */
 static void
-trace_find_tracepoint_command (char *args, int from_tty)
+trace_find_tracepoint_command (const char *args, int from_tty)
 {				/* STUB_COMM PART_IMPLEMENTED */
   int tdp;
 
@@ -2088,7 +2088,7 @@
    corresponding to a source line OTHER THAN THE CURRENT ONE.  */
 
 static void
-trace_find_line_command (char *args, int from_tty)
+trace_find_line_command (const char *args, int from_tty)
 {				/* STUB_COMM PART_IMPLEMENTED */
   static CORE_ADDR start_pc, end_pc;
   struct symtabs_and_lines sals;
@@ -2176,7 +2176,7 @@
 
 /* tfind range command */
 static void
-trace_find_range_command (char *args, int from_tty)
+trace_find_range_command (const char *args, int from_tty)
 {
   static CORE_ADDR start, stop;
   char start_str[40], stop_str[40];
@@ -2215,7 +2215,7 @@
 
 /* tfind outside command */
 static void
-trace_find_outside_command (char *args, int from_tty)
+trace_find_outside_command (const char *args, int from_tty)
 {
   CORE_ADDR start, stop;
   char start_str[40], stop_str[40];
@@ -2254,7 +2254,7 @@
 
 /* save-tracepoints command */
 static void
-tracepoint_save_command (char *args, int from_tty)
+tracepoint_save_command (const char *args, int from_tty)
 {
   struct tracepoint *tp;
   struct action_line *line;
@@ -2470,11 +2470,11 @@
 
 /* tdump command */
 static void
-trace_dump_command (char *args, int from_tty)
+trace_dump_command (const char *args, int from_tty)
 {
   struct tracepoint *t;
   struct action_line *action;
-  char *action_exp, *next_comma;
+  const char *action_exp, *next_comma;
   struct cleanup *old_cleanups;
   int stepping_actions = 0;
   int stepping_frame = 0;
diff --git a/gdb/tracepoint.h b/gdb/tracepoint.h
index c464ae1..b40a6c0 100644
--- a/gdb/tracepoint.h
+++ b/gdb/tracepoint.h
@@ -112,10 +112,10 @@
 void (*create_tracepoint_hook) (struct tracepoint *);
 void (*delete_tracepoint_hook) (struct tracepoint *);
 void (*modify_tracepoint_hook) (struct tracepoint *);
-void (*trace_find_hook) (char *arg, int from_tty);
+void (*trace_find_hook) (char *const arg, int from_tty);
 void (*trace_start_stop_hook) (int start, int from_tty);
 
-struct tracepoint *get_tracepoint_by_number (char **, int, int);
+struct tracepoint *get_tracepoint_by_number (const char **, int, int);
 int get_traceframe_number (void);
 void free_actions (struct tracepoint *);
 enum actionline_type validate_actionline (char **, struct tracepoint *);
diff --git a/gdb/typeprint.c b/gdb/typeprint.c
index 22a1eab..6f901e7 100644
--- a/gdb/typeprint.c
+++ b/gdb/typeprint.c
@@ -43,13 +43,13 @@
 
 extern void _initialize_typeprint (void);
 
-static void ptype_command (char *, int);
+static void ptype_command (const char *, int);
 
 static struct type *ptype_eval (struct expression *);
 
-static void whatis_command (char *, int);
+static void whatis_command (const char *, int);
 
-static void whatis_exp (char *, int);
+static void whatis_exp (const char *, int);
 
 /* Print a description of a type in the format of a 
    typedef for the current language.
@@ -113,7 +113,7 @@
    show is passed to type_print.  */
 
 static void
-whatis_exp (char *exp, int show)
+whatis_exp (const char *exp, int show)
 {
   struct expression *expr;
   struct value *val;
@@ -175,7 +175,7 @@
 
 /* ARGSUSED */
 static void
-whatis_command (char *exp, int from_tty)
+whatis_command (const char *exp, int from_tty)
 {
   /* Most of the time users do not want to see all the fields
      in a structure.  If they do they can use the "ptype" command.
@@ -202,7 +202,7 @@
 
 /* ARGSUSED */
 static void
-ptype_command (char *typename, int from_tty)
+ptype_command (const char *typename, int from_tty)
 {
   register struct type *type;
   struct expression *expr;
diff --git a/gdb/ui-file.c b/gdb/ui-file.c
index 3af6d2c..2168852 100644
--- a/gdb/ui-file.c
+++ b/gdb/ui-file.c
@@ -476,7 +476,7 @@
 }
 
 struct ui_file *
-gdb_fopen (char *name, char *mode)
+gdb_fopen (const char *name, const char *mode)
 {
   FILE *f = fopen (name, mode);
   if (f == NULL)
diff --git a/gdb/ui-file.h b/gdb/ui-file.h
index 989c343..b708e34 100644
--- a/gdb/ui-file.h
+++ b/gdb/ui-file.h
@@ -88,7 +88,7 @@
 extern struct ui_file *stdio_fileopen (FILE *file);
 
 /* Open NAME returning an STDIO based UI_FILE. */
-extern struct ui_file *gdb_fopen (char *name, char *mode);
+extern struct ui_file *gdb_fopen (const char *name, const char *mode);
 
 /* Create a file which writes to both ONE and TWO.  CLOSE_ONE
    and CLOSE_TWO indicate whether the original files should be
diff --git a/gdb/utils.c b/gdb/utils.c
index 3d820de..5364b82 100644
--- a/gdb/utils.c
+++ b/gdb/utils.c
@@ -102,7 +102,7 @@
 
 static void prompt_for_continue (void);
 
-static void set_width_command (char *, int, struct cmd_list_element *);
+static void set_width_command (const char *, int, struct cmd_list_element *);
 
 static void set_width (void);
 
@@ -163,15 +163,15 @@
 
 /* String to be printed before error messages, if any.  */
 
-char *error_pre_print;
+const char *error_pre_print;
 
 /* String to be printed before quit messages, if any.  */
 
-char *quit_pre_print;
+const char *quit_pre_print;
 
 /* String to be printed before warning messages, if any.  */
 
-char *warning_pre_print = "\nwarning: ";
+const char *warning_pre_print = "\nwarning: ";
 
 int pagination_enabled = 1;
 
@@ -1575,7 +1575,7 @@
 
 /* String to indent by if the wrap occurs.  Must not be NULL if wrap_column
    is non-zero.  */
-static char *wrap_indent;
+static const char *wrap_indent;
 
 /* Column number on the screen where wrap_buffer begins, or 0 if wrapping
    is not in effect.  */
@@ -1668,7 +1668,7 @@
 
 /* ARGSUSED */
 static void
-set_width_command (char *args, int from_tty, struct cmd_list_element *c)
+set_width_command (const char *args, int from_tty, struct cmd_list_element *c)
 {
   set_width ();
 }
@@ -1765,7 +1765,7 @@
    used to force out output from the wrap_buffer.  */
 
 void
-wrap_here (char *indent)
+wrap_here (const char *indent)
 {
   /* This should have been allocated, but be paranoid anyway. */
   if (!wrap_buffer)
@@ -2279,7 +2279,7 @@
    demangling is off, the name is printed in its "raw" form. */
 
 void
-fprintf_symbol_filtered (struct ui_file *stream, char *name,
+fprintf_symbol_filtered (struct ui_file *stream, const char *name,
 			 enum language lang, int arg_mode)
 {
   char *demangled;
@@ -2448,16 +2448,16 @@
 }
 
 
-static void pagination_on_command (char *arg, int from_tty);
+static void pagination_on_command (const char *arg, int from_tty);
 static void
-pagination_on_command (char *arg, int from_tty)
+pagination_on_command (const char *arg, int from_tty)
 {
   pagination_enabled = 1;
 }
 
-static void pagination_on_command (char *arg, int from_tty);
+static void pagination_on_command (const char *arg, int from_tty);
 static void
-pagination_off_command (char *arg, int from_tty)
+pagination_off_command (const char *arg, int from_tty)
 {
   pagination_enabled = 0;
 }
diff --git a/gdb/v850-tdep.c b/gdb/v850-tdep.c
index 1828d1c..e6b238e 100644
--- a/gdb/v850-tdep.c
+++ b/gdb/v850-tdep.c
@@ -958,7 +958,7 @@
       if (!v850_type_is_scalar (VALUE_TYPE (*args))
 	  && TYPE_LENGTH (VALUE_TYPE (*args)) > E_MAX_RETTYPE_SIZE_IN_REGS)
 	{
-	  store_address (valbuf, 4, VALUE_ADDRESS (*args));
+	  store_unsigned_integer (valbuf, 4, VALUE_ADDRESS (*args));
 	  len = 4;
 	  val = valbuf;
 	}
diff --git a/gdb/valprint.c b/gdb/valprint.c
index d4b8bf5..05b64a4 100644
--- a/gdb/valprint.c
+++ b/gdb/valprint.c
@@ -45,19 +45,19 @@
 static void print_hex_chars (struct ui_file *, unsigned char *,
 			     unsigned int);
 
-static void show_print (char *, int);
+static void show_print (const char *, int);
 
-static void set_print (char *, int);
+static void set_print (const char *, int);
 
-static void set_radix (char *, int);
+static void set_radix (const char *, int);
 
-static void show_radix (char *, int);
+static void show_radix (const char *, int);
 
-static void set_input_radix (char *, int, struct cmd_list_element *);
+static void set_input_radix (const char *, int, struct cmd_list_element *);
 
 static void set_input_radix_1 (int, unsigned);
 
-static void set_output_radix (char *, int, struct cmd_list_element *);
+static void set_output_radix (const char *, int, struct cmd_list_element *);
 
 static void set_output_radix_1 (int, unsigned);
 
@@ -1185,7 +1185,7 @@
 
 /* ARGSUSED */
 static void
-set_input_radix (char *args, int from_tty, struct cmd_list_element *c)
+set_input_radix (const char *args, int from_tty, struct cmd_list_element *c)
 {
   set_input_radix_1 (from_tty, input_radix);
 }
@@ -1218,7 +1218,7 @@
 
 /* ARGSUSED */
 static void
-set_output_radix (char *args, int from_tty, struct cmd_list_element *c)
+set_output_radix (const char *args, int from_tty, struct cmd_list_element *c)
 {
   set_output_radix_1 (from_tty, output_radix);
 }
@@ -1262,7 +1262,7 @@
    the 'set input-radix' command. */
 
 static void
-set_radix (char *arg, int from_tty)
+set_radix (const char *arg, int from_tty)
 {
   unsigned radix;
 
@@ -1280,7 +1280,7 @@
 
 /*ARGSUSED */
 static void
-show_radix (char *arg, int from_tty)
+show_radix (const char *arg, int from_tty)
 {
   if (from_tty)
     {
@@ -1302,7 +1302,7 @@
 
 /*ARGSUSED */
 static void
-set_print (char *arg, int from_tty)
+set_print (const char *arg, int from_tty)
 {
   printf_unfiltered (
      "\"set print\" must be followed by the name of a print subcommand.\n");
@@ -1311,7 +1311,7 @@
 
 /*ARGSUSED */
 static void
-show_print (char *args, int from_tty)
+show_print (const char *args, int from_tty)
 {
   cmd_show_list (showprintlist, from_tty, "");
 }
diff --git a/gdb/value.h b/gdb/value.h
index 54854e5..856a3f3 100644
--- a/gdb/value.h
+++ b/gdb/value.h
@@ -431,17 +431,17 @@
 extern struct value *evaluate_subexp_with_coercion (struct expression *,
 						    int *, enum noside);
 
-extern struct value *parse_and_eval (char *exp);
+extern struct value *parse_and_eval (const char *exp);
 
-extern struct value *parse_to_comma_and_eval (char **expp);
+extern struct value *parse_to_comma_and_eval (const char **expp);
 
 extern struct type *parse_and_eval_type (char *p, int length);
 
-extern CORE_ADDR parse_and_eval_address (char *exp);
+extern CORE_ADDR parse_and_eval_address (const char *exp);
 
-extern CORE_ADDR parse_and_eval_address_1 (char **expptr);
+extern CORE_ADDR parse_and_eval_address_1 (const char **expptr);
 
-extern LONGEST parse_and_eval_long (char *exp);
+extern LONGEST parse_and_eval_long (const char *exp);
 
 extern struct value *access_value_history (int num);
 
@@ -454,7 +454,7 @@
 				       int bitpos, int bitsize,
 				       struct value *newvalue);
 
-extern struct internalvar *lookup_internalvar (char *name);
+extern struct internalvar *lookup_internalvar (const char *name);
 
 extern int value_equal (struct value *arg1, struct value *arg2);
 
diff --git a/gdb/values.c b/gdb/values.c
index 88c6a61..a741982 100644
--- a/gdb/values.c
+++ b/gdb/values.c
@@ -44,9 +44,9 @@
 
 /* Prototypes for local functions. */
 
-static void show_values (char *, int);
+static void show_values (const char *, int);
 
-static void show_convenience (char *, int);
+static void show_convenience (const char *, int);
 
 
 /* The value-history records all the values printed
@@ -345,7 +345,7 @@
 }
 
 static void
-show_values (char *num_exp, int from_tty)
+show_values (const char *num_exp, int from_tty)
 {
   register int i;
   struct value *val;
@@ -402,7 +402,7 @@
    one is created, with a void value.  */
 
 struct internalvar *
-lookup_internalvar (char *name)
+lookup_internalvar (const char *name)
 {
   register struct internalvar *var;
 
@@ -496,7 +496,7 @@
 }
 
 static void
-show_convenience (char *ignore, int from_tty)
+show_convenience (const char *ignore, int from_tty)
 {
   register struct internalvar *var;
   int varseen = 0;
diff --git a/gdb/varobj.c b/gdb/varobj.c
index 0c9f048..0aa23d7 100644
--- a/gdb/varobj.c
+++ b/gdb/varobj.c
@@ -433,7 +433,7 @@
 
   if (expression != NULL)
     {
-      char *p;
+      const char *p;
       enum varobj_languages lang;
 
       /* Parse and evaluate the expression, filling in as much
@@ -795,7 +795,7 @@
 
   if (var->value != NULL && variable_editable (var) && !var->error)
     {
-      char *s = expression;
+      const char *s = expression;
       int i;
 
       input_radix = 10;		/* ALWAYS reset to decimal temporarily */
diff --git a/gdb/wrapper.c b/gdb/wrapper.c
index 6c9c6d6..f88955c 100644
--- a/gdb/wrapper.c
+++ b/gdb/wrapper.c
@@ -70,7 +70,7 @@
 static int wrap_parse_and_eval_type (char *);
 
 int
-gdb_parse_exp_1 (char **stringptr, struct block *block, int comma,
+gdb_parse_exp_1 (const char **stringptr, struct block *block, int comma,
 		 struct expression **expression)
 {
   struct gdb_wrapper_arguments args;
@@ -95,7 +95,7 @@
 {
   struct gdb_wrapper_arguments *args 
     = (struct gdb_wrapper_arguments *) argptr;
-  args->result.pointer = parse_exp_1((char **) args->args[0].pointer,
+  args->result.pointer = parse_exp_1((const char **) args->args[0].pointer,
 				     (struct block *) args->args[1].pointer,
 				     args->args[2].integer);
   return 1;
diff --git a/gdb/wrapper.h b/gdb/wrapper.h
index b287b29..40e5547 100644
--- a/gdb/wrapper.h
+++ b/gdb/wrapper.h
@@ -27,7 +27,7 @@
 /* Use this struct to pass arguments to wrapper routines. */
 struct gdb_wrapper_arguments;
 
-extern int gdb_parse_exp_1 (char **, struct block *,
+extern int gdb_parse_exp_1 (const char **, struct block *,
 			    int, struct expression **);
 
 extern int gdb_evaluate_expression (struct expression *, struct value **);
diff --git a/gdb/xstormy16-tdep.c b/gdb/xstormy16-tdep.c
index d6aa018..7f170e9 100644
--- a/gdb/xstormy16-tdep.c
+++ b/gdb/xstormy16-tdep.c
@@ -985,7 +985,7 @@
       if (addr2)
 	addr = addr2;
     }
-  store_address (buf, TYPE_LENGTH (type), addr);
+  store_unsigned_integer (buf, TYPE_LENGTH (type), addr);
 }
 
 static CORE_ADDR