From: Pedro Alves <palves@redhat.com>
To: Mike Frysinger <vapier@gentoo.org>, gdb-patches@sourceware.org
Subject: Re: [PATCH] gdb: sim: disable integration w/some multitarget configs [PR sim/13418]
Date: Mon, 04 Jan 2016 13:38:00 -0000 [thread overview]
Message-ID: <568A75CE.1010007@redhat.com> (raw)
In-Reply-To: <1451724153-23316-1-git-send-email-vapier@gentoo.org>
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
next prev parent reply other threads:[~2016-01-04 13:38 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-02 8:42 Mike Frysinger
2016-01-04 13:38 ` Pedro Alves [this message]
2016-01-05 0:55 ` Mike Frysinger
2016-01-05 11:09 ` Pedro Alves
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=568A75CE.1010007@redhat.com \
--to=palves@redhat.com \
--cc=gdb-patches@sourceware.org \
--cc=vapier@gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox