Fix remote-sim.c compilation

The change "make string-like set show commands use std::string
variable" caused remote-sim.c to fail to build.  The issue is that the
code does:

  const std::string &sysroot = gdb_sysroot;
  if (is_target_filename (sysroot))
    sysroot += strlen (TARGET_SYSROOT_PREFIX);

... which isn't valid.

This patch changes this code to use a 'const char *' again, fixing the
build.
This commit is contained in:
Tom Tromey
2021-10-04 09:14:26 -06:00
parent 6619a08b25
commit abe19f1119

View File

@@ -682,7 +682,7 @@ gdbsim_target_open (const char *args, int from_tty)
struct sim_inferior_data *sim_data;
SIM_DESC gdbsim_desc;
const std::string &sysroot = gdb_sysroot;
const char *sysroot = gdb_sysroot.c_str ();
if (is_target_filename (sysroot))
sysroot += strlen (TARGET_SYSROOT_PREFIX);
@@ -703,7 +703,7 @@ gdbsim_target_open (const char *args, int from_tty)
len = (7 + 1 /* gdbsim */
+ strlen (" -E little")
+ strlen (" --architecture=xxxxxxxxxx")
+ strlen (" --sysroot=") + sysroot.length () +
+ strlen (" --sysroot=") + strlen (sysroot) +
+ (args ? strlen (args) : 0)
+ 50) /* slack */ ;
arg_buf = (char *) alloca (len);
@@ -730,7 +730,7 @@ gdbsim_target_open (const char *args, int from_tty)
}
/* Pass along gdb's concept of the sysroot. */
strcat (arg_buf, " --sysroot=");
strcat (arg_buf, sysroot.c_str ());
strcat (arg_buf, sysroot);
/* finally, any explicit args */
if (args)
{