mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-24 12:23:31 +08:00
gdb: sim: handle target sysroot prefix
The default gdb sysroot now sets itself to "target:". This works for most remote targets, but when using the simulator, this causes problems as the sim will attempt to search for that path. Update the remote-sim logic to skip this leading prefix when it is found so that the sysroot isn't passed in as an invalid value.
This commit is contained in:
@ -1,3 +1,9 @@
|
|||||||
|
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.
|
||||||
|
|
||||||
2015-06-24 Yao Qi <yao.qi@linaro.org>
|
2015-06-24 Yao Qi <yao.qi@linaro.org>
|
||||||
|
|
||||||
* aarch64-linux-tdep.c (aarch64_linux_init_abi): Don't call
|
* aarch64-linux-tdep.c (aarch64_linux_init_abi): Don't call
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
#include "defs.h"
|
#include "defs.h"
|
||||||
|
#include "gdb_bfd.h"
|
||||||
#include "inferior.h"
|
#include "inferior.h"
|
||||||
#include "infrun.h"
|
#include "infrun.h"
|
||||||
#include "value.h"
|
#include "value.h"
|
||||||
@ -669,6 +670,7 @@ gdbsim_open (const char *args, int from_tty)
|
|||||||
int len;
|
int len;
|
||||||
char *arg_buf;
|
char *arg_buf;
|
||||||
struct sim_inferior_data *sim_data;
|
struct sim_inferior_data *sim_data;
|
||||||
|
const char *sysroot = gdb_sysroot;
|
||||||
SIM_DESC gdbsim_desc;
|
SIM_DESC gdbsim_desc;
|
||||||
|
|
||||||
if (remote_debug)
|
if (remote_debug)
|
||||||
@ -688,7 +690,7 @@ gdbsim_open (const char *args, int from_tty)
|
|||||||
len = (7 + 1 /* gdbsim */
|
len = (7 + 1 /* gdbsim */
|
||||||
+ strlen (" -E little")
|
+ strlen (" -E little")
|
||||||
+ strlen (" --architecture=xxxxxxxxxx")
|
+ strlen (" --architecture=xxxxxxxxxx")
|
||||||
+ strlen (" --sysroot=") + strlen (gdb_sysroot) +
|
+ strlen (" --sysroot=") + strlen (sysroot) +
|
||||||
+ (args ? strlen (args) : 0)
|
+ (args ? strlen (args) : 0)
|
||||||
+ 50) /* slack */ ;
|
+ 50) /* slack */ ;
|
||||||
arg_buf = (char *) alloca (len);
|
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. */
|
/* Pass along gdb's concept of the sysroot. */
|
||||||
strcat (arg_buf, " --sysroot=");
|
strcat (arg_buf, " --sysroot=");
|
||||||
strcat (arg_buf, gdb_sysroot);
|
if (is_target_filename (sysroot))
|
||||||
|
sysroot += strlen (TARGET_SYSROOT_PREFIX);
|
||||||
|
strcat (arg_buf, sysroot);
|
||||||
/* finally, any explicit args */
|
/* finally, any explicit args */
|
||||||
if (args)
|
if (args)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user