This is the mail archive of the gdb-cvs@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]

[binutils-gdb] gdb: sim: handle target sysroot prefix


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=23bf70af12aa0c14e79c02b6098117bdba8c8a3a

commit 23bf70af12aa0c14e79c02b6098117bdba8c8a3a
Author: Mike Frysinger <vapier@gentoo.org>
Date:   Tue Jun 23 11:29:39 2015 -0400

    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.

Diff:
---
 gdb/ChangeLog    | 6 ++++++
 gdb/remote-sim.c | 8 ++++++--
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 3603241..f46a620 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -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
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);
+  strcat (arg_buf, sysroot);
   /* finally, any explicit args */
   if (args)
     {


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]