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:
parent
5cd867b414
commit
23bf70af12
2 changed files with 12 additions and 2 deletions
|
@ -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>
|
||||
|
||||
* 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/>. */
|
||||
|
||||
#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);
|
||||
strcat (arg_buf, sysroot);
|
||||
/* finally, any explicit args */
|
||||
if (args)
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue