This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On 24 Jun 2015 14:46, Pedro Alves wrote: > On 06/23/2015 04:29 PM, Mike Frysinger wrote: > > --- a/gdb/remote-sim.c > > +++ b/gdb/remote-sim.c > > @@ -669,6 +670,7 @@ gdbsim_open (const char *args, int from_tty) > > int len; > > char *arg_buf; > > struct sim_inferior_data *sim_data; > > + const char *sysroot = gdb_sysroot; > > SIM_DESC gdbsim_desc; > > > > if (remote_debug) > > @@ -688,7 +690,7 @@ gdbsim_open (const char *args, int from_tty) > > len = (7 + 1 /* gdbsim */ > > + strlen (" -E little") > > + strlen (" --architecture=xxxxxxxxxx") > > - + strlen (" --sysroot=") + strlen (gdb_sysroot) + > > + + strlen (" --sysroot=") + strlen (sysroot) + > > + (args ? strlen (args) : 0) > > + 50) /* slack */ ; > > arg_buf = (char *) alloca (len); > > @@ -715,7 +717,9 @@ gdbsim_open (const char *args, int from_tty) > > } > > /* Pass along gdb's concept of the sysroot. */ > > strcat (arg_buf, " --sysroot="); > > - strcat (arg_buf, gdb_sysroot); > > + if (is_target_filename (sysroot)) > > + sysroot += strlen (TARGET_SYSROOT_PREFIX); > > Please do this skipping above the "len = " computation. As is > we'll just oversize arg_bug, but there's no good reason > for the discrepancy. > > OK with that change. already pushed ;). i've committed the attached on top though. > (it would be easy to get rid of all that using reconcat.) hmm, maybe. would be nice if the argv could be built up incrementally. maybe xstrprintf would be a simple stop gap. -mike
From 87d1b30944783ae0efb49236c6d872d775a37417 Mon Sep 17 00:00:00 2001 From: Mike Frysinger <vapier@gentoo.org> Date: Wed, 24 Jun 2015 21:23:12 +0700 Subject: [PATCH] gdb: sim: merge the sysroot update logic together Initialize the local sysroot fully before we start using it. This keeps it all a bit simpler. --- gdb/ChangeLog | 4 ++++ gdb/remote-sim.c | 8 +++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index f46a620..19144ed 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,9 @@ 2015-06-24 Mike Frysinger <vapier@gentoo.org> + * remote-sim.c (gdbsim_open): Move sysroot update to the top. + +2015-06-24 Mike Frysinger <vapier@gentoo.org> + * remote-sim.c: Include gdb_bfd.h. (gdbsim_open): Declare new local sysroot pointing to gdb_sysroot. Skip TARGET_SYSROOT_PREFIX in gdb_sysroot when it is active. diff --git a/gdb/remote-sim.c b/gdb/remote-sim.c index 0c43379..82c129d 100644 --- a/gdb/remote-sim.c +++ b/gdb/remote-sim.c @@ -670,9 +670,13 @@ gdbsim_open (const char *args, int from_tty) int len; char *arg_buf; struct sim_inferior_data *sim_data; - const char *sysroot = gdb_sysroot; + const char *sysroot; SIM_DESC gdbsim_desc; + sysroot = gdb_sysroot; + if (is_target_filename (sysroot)) + sysroot += strlen (TARGET_SYSROOT_PREFIX); + if (remote_debug) fprintf_unfiltered (gdb_stdlog, "gdbsim_open: args \"%s\"\n", args ? args : "(null)"); @@ -717,8 +721,6 @@ gdbsim_open (const char *args, int from_tty) } /* Pass along gdb's concept of the sysroot. */ strcat (arg_buf, " --sysroot="); - if (is_target_filename (sysroot)) - sysroot += strlen (TARGET_SYSROOT_PREFIX); strcat (arg_buf, sysroot); /* finally, any explicit args */ if (args) -- 2.4.4
Attachment:
signature.asc
Description: Digital signature
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |