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]

Re: [PATCH] gdb: sim: disable integration w/some multitarget configs [PR sim/13418]


On 01/02/2016 08:42 AM, Mike Frysinger wrote:
> Multitarget builds currently fail when:
> (1) simulator support is enabled
> (2) powerpc is included in the target list
> (3) powerpc is not the main/default target
> 
> This is because the powerpc sim provides a non-standard API function
> sim_spr_register_name which the powerpc gdb utilizes.  Since the sim
> does not yet support multitarget, only the sim for the main target
> (if one exists) is built.  When that target isn't powerpc, this func
> is not available leading to linking errors.
> 
> Since multitarget support is going to take a while, and specifically
> the powerpc target is going to take even longer, disable sim support
> automatically when the aforementioned conditions are met.

> diff --git a/gdb/configure.ac b/gdb/configure.ac
> index 5b618c9..458605f 100644
> --- a/gdb/configure.ac
> +++ b/gdb/configure.ac
> @@ -2256,6 +2256,19 @@ fi
>  SIM=
>  SIM_OBS=
>  if test "${ignore_sim}" = "false"; then
> +  # The ppc gdb/sim only works when it's the main target.  PR sim/13418
> +  case $target in
> +  powerpc*-*-*) ;;
> +  *)
> +    case "${all_targets}: ${TARGET_OBS} " in
> +    true:*|*" rs6000-tdep.o "*)
> +      AC_MSG_WARN([Disabling sim integration for multitarget powerpc configs])
> +      gdb_sim=
> +      ;;
> +    esac
> +    ;;
> +  esac
> +

Now sure about that.  It penalizes non-PPC sims for a PPC sim issue.

How about this instead?

>From e05ef2bec1b3843c87dd06a7680f7d6e1c13ba1e Mon Sep 17 00:00:00 2001
From: Pedro Alves <palves@redhat.com>
Date: Mon, 4 Jan 2016 13:01:25 +0000
Subject: [PATCH] ppc sim

---
 gdb/config.in     |  3 +++
 gdb/configure     | 10 ++++++++++
 gdb/configure.ac  |  8 ++++++++
 gdb/rs6000-tdep.c |  2 +-
 4 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/gdb/config.in b/gdb/config.in
index ccc0098..6196fa0 100644
--- a/gdb/config.in
+++ b/gdb/config.in
@@ -758,6 +758,9 @@
    when building for Cygwin. */
 #undef USE_WIN32API
 
+/* Define if the PPC simulator is being linked in. */
+#undef WITH_PPC_SIM
+
 /* Define if --with-python provides a path, either directly or via
    python-config.py --exec-prefix. */
 #undef WITH_PYTHON_PATH
diff --git a/gdb/configure b/gdb/configure
index 5afdbbc..15383d6 100755
--- a/gdb/configure
+++ b/gdb/configure
@@ -15846,6 +15846,16 @@ if test "${ignore_sim}" = "false"; then
 
 $as_echo "#define WITH_SIM 1" >>confdefs.h
 
+
+    # Some tdep code should only be compiled in when the ppc sim is
+    # built.  PR sim/13418.
+    case $target in
+      powerpc*-*-*)
+
+$as_echo "#define WITH_PPC_SIM 1" >>confdefs.h
+
+	;;
+    esac
   fi
 fi
 
diff --git a/gdb/configure.ac b/gdb/configure.ac
index 5b618c9..d102640 100644
--- a/gdb/configure.ac
+++ b/gdb/configure.ac
@@ -2260,6 +2260,14 @@ if test "${ignore_sim}" = "false"; then
     SIM="${gdb_sim}"
     SIM_OBS="remote-sim.o"
     AC_DEFINE(WITH_SIM, 1, [Define if the simulator is being linked in.])
+
+    # Some tdep code should only be compiled in when the ppc sim is
+    # built.  PR sim/13418.
+    case $target in
+      powerpc*-*-*)
+	AC_DEFINE(WITH_PPC_SIM, 1, [Define if the PPC simulator is being linked in.])
+	;;
+    esac
   fi
 fi
 AC_SUBST(SIM)
diff --git a/gdb/rs6000-tdep.c b/gdb/rs6000-tdep.c
index 47b0749..599b076 100644
--- a/gdb/rs6000-tdep.c
+++ b/gdb/rs6000-tdep.c
@@ -328,7 +328,7 @@ init_sim_regno_table (struct gdbarch *arch)
     set_sim_regno (sim_regno, tdep->ppc_acc_regnum, sim_ppc_acc_regnum);
   /* spefscr is a special-purpose register, so the code below handles it.  */
 
-#ifdef WITH_SIM
+#ifdef WITH_PPC_SIM
   /* Now handle all special-purpose registers.  Verify that they
      haven't mistakenly been assigned numbers by any of the above
      code.  */
-- 
1.9.3



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