[PATCH v2] gdb: sim: handle target sysroot prefix

Pedro Alves palves@redhat.com
Wed Jun 24 13:47:00 GMT 2015


On 06/23/2015 04:29 PM, Mike Frysinger wrote:

>  gdb/remote-sim.c | 8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/gdb/remote-sim.c b/gdb/remote-sim.c
> index fd2fd58..0c43379 100644
> --- a/gdb/remote-sim.c
> +++ b/gdb/remote-sim.c
> @@ -21,6 +21,7 @@
>     along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
>  
>  #include "defs.h"
> +#include "gdb_bfd.h"
>  #include "inferior.h"
>  #include "infrun.h"
>  #include "value.h"
> @@ -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.

(it would be easy to get rid of all that using reconcat.)

Thanks you; thanks Gary.

-- 
Pedro Alves



More information about the Gdb-patches mailing list