* [PATCH] configure: Re-disable building cross-gdbserver
@ 2020-02-08 16:21 Maciej W. Rozycki
2020-02-11 15:24 ` Tom Tromey
0 siblings, 1 reply; 5+ messages in thread
From: Maciej W. Rozycki @ 2020-02-08 16:21 UTC (permalink / raw)
To: gcc-patches; +Cc: Tom Tromey, gdb-patches, binutils
Correct fallout from commit 919adfe84092 ("Move gdbserver to top level")
and revert to not building `gdbserver' in a cross-configuration, that is
where host != target, matching the documented behaviour. We have no way
to support non-native `gdbserver', and native `gdbserver' is usually of
no use with cross-GDB of the chosen host.
* configure.ac: Do not build `gdbserver' if $is_cross_compiler.
* configure: Regenerate.
---
Hi,
Verified with a native build, a crossed build of a native configuration
and a build of a cross-debugger; Canadian Cross not checked. OK to apply?
NB I have noticed that the gdbserver(1) man page is still being built and
installed (as ${target_alias}-gdbserver.1, if building a cross-debugger),
even if `gdbserver' itself is not (and it is not built if only `gdbserver'
is while GDB is not). Obviously this is due to the man page still living
under gdb/doc/, and I presume it will be addressed sometime soon, by
moving the man page somewhere under gdbserver/, right?
Also there are currently a number of mismatches in configure.ac between
the gcc and the binutils-gdb repositories; what is the plan to eliminate
them?
Maciej
---
configure | 5 +++--
configure.ac | 5 +++--
2 files changed, 6 insertions(+), 4 deletions(-)
gdbserver-no-cross.diff
Index: binutils-gdb/configure
===================================================================
--- binutils-gdb.orig/configure
+++ binutils-gdb/configure
@@ -3538,12 +3538,13 @@ case "${target}" in
;;
esac
-# Only allow gdbserver on some systems.
+# Only allow native gdbserver and then only on some systems.
if test -d ${srcdir}/gdbserver; then
if test x$enable_gdbserver = x; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gdbserver support" >&5
$as_echo_n "checking for gdbserver support... " >&6; }
- if (srcdir=${srcdir}/gdbserver; \
+ if test x${is_cross_compiler} = xyes \
+ || (srcdir=${srcdir}/gdbserver; \
. ${srcdir}/configure.srv; \
test -n "$UNSUPPORTED")
then
Index: binutils-gdb/configure.ac
===================================================================
--- binutils-gdb.orig/configure.ac
+++ binutils-gdb/configure.ac
@@ -782,11 +782,12 @@ case "${target}" in
;;
esac
-# Only allow gdbserver on some systems.
+# Only allow native gdbserver and then only on some systems.
if test -d ${srcdir}/gdbserver; then
if test x$enable_gdbserver = x; then
AC_MSG_CHECKING([for gdbserver support])
- if (srcdir=${srcdir}/gdbserver; \
+ if test x${is_cross_compiler} = xyes \
+ || (srcdir=${srcdir}/gdbserver; \
. ${srcdir}/configure.srv; \
test -n "$UNSUPPORTED")
then
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] configure: Re-disable building cross-gdbserver
2020-02-08 16:21 [PATCH] configure: Re-disable building cross-gdbserver Maciej W. Rozycki
@ 2020-02-11 15:24 ` Tom Tromey
2020-02-11 21:02 ` Maciej W. Rozycki
0 siblings, 1 reply; 5+ messages in thread
From: Tom Tromey @ 2020-02-11 15:24 UTC (permalink / raw)
To: Maciej W. Rozycki; +Cc: gcc-patches, Tom Tromey, gdb-patches, binutils
>>>>> "Maciej" == Maciej W Rozycki <macro@wdc.com> writes:
Maciej> Correct fallout from commit 919adfe84092 ("Move gdbserver to top level")
Maciej> and revert to not building `gdbserver' in a cross-configuration, that is
Maciej> where host != target, matching the documented behaviour. We have no way
Maciej> to support non-native `gdbserver', and native `gdbserver' is usually of
Maciej> no use with cross-GDB of the chosen host.
Pedro had a different way to do this, that keeps the decision under
gdbserver's control:
https://sourceware.org/ml/gdb-patches/2020-02/msg00383.html
Also note that I haven't sent the top-level configury patches upstream
to gcc yet. I am going to do this all at once, at the end. I think
there's one more patch that will be needed, once gdbserver depends on
the top-level gdbsupport.
Tom
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] configure: Re-disable building cross-gdbserver
2020-02-11 15:24 ` Tom Tromey
@ 2020-02-11 21:02 ` Maciej W. Rozycki
2020-02-12 13:56 ` Pedro Alves
0 siblings, 1 reply; 5+ messages in thread
From: Maciej W. Rozycki @ 2020-02-11 21:02 UTC (permalink / raw)
To: Tom Tromey; +Cc: Pedro Alves, gcc-patches, gdb-patches, binutils
On Tue, 11 Feb 2020, Tom Tromey wrote:
> Maciej> Correct fallout from commit 919adfe84092 ("Move gdbserver to top level")
> Maciej> and revert to not building `gdbserver' in a cross-configuration, that is
> Maciej> where host != target, matching the documented behaviour. We have no way
> Maciej> to support non-native `gdbserver', and native `gdbserver' is usually of
> Maciej> no use with cross-GDB of the chosen host.
>
> Pedro had a different way to do this, that keeps the decision under
> gdbserver's control:
>
> https://sourceware.org/ml/gdb-patches/2020-02/msg00383.html
That's actually quite similar to what I considered first, before I
changed my mind. Whatever.
However I would expect `exit' not to be what we want in a sourced script
(I did this differently; see below).
> Also note that I haven't sent the top-level configury patches upstream
> to gcc yet. I am going to do this all at once, at the end. I think
> there's one more patch that will be needed, once gdbserver depends on
> the top-level gdbsupport.
Ack.
Maciej
---
gdbserver/configure.srv | 8 ++++++++
1 file changed, 8 insertions(+)
Index: binutils-gdb/gdbserver/configure.srv
===================================================================
--- binutils-gdb.orig/gdbserver/configure.srv
+++ binutils-gdb/gdbserver/configure.srv
@@ -36,6 +36,14 @@ srv_linux_obj="linux-low.o nat/linux-osd
# Input is taken from the "${host}" variable.
case "${host}" in
+ ${target})
+ gdbserver_host=${host}
+ ;;
+ *)
+ gdbserver_host=NONE
+ ;;
+esac
+case "${gdbserver_host}" in
aarch64*-*-linux*) srv_tgtobj="linux-aarch64-low.o"
srv_tgtobj="$srv_tgtobj nat/aarch64-linux-hw-point.o"
srv_tgtobj="$srv_tgtobj linux-aarch32-low.o"
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] configure: Re-disable building cross-gdbserver
2020-02-11 21:02 ` Maciej W. Rozycki
@ 2020-02-12 13:56 ` Pedro Alves
2020-02-13 23:48 ` Maciej W. Rozycki
0 siblings, 1 reply; 5+ messages in thread
From: Pedro Alves @ 2020-02-12 13:56 UTC (permalink / raw)
To: Maciej W. Rozycki, Tom Tromey; +Cc: gcc-patches, gdb-patches, binutils
On 2/11/20 9:01 PM, Maciej W. Rozycki wrote:
> On Tue, 11 Feb 2020, Tom Tromey wrote:
>
>> Maciej> Correct fallout from commit 919adfe84092 ("Move gdbserver to top level")
>> Maciej> and revert to not building `gdbserver' in a cross-configuration, that is
>> Maciej> where host != target, matching the documented behaviour. We have no way
>> Maciej> to support non-native `gdbserver', and native `gdbserver' is usually of
>> Maciej> no use with cross-GDB of the chosen host.
>>
>> Pedro had a different way to do this, that keeps the decision under
>> gdbserver's control:
>>
>> https://sourceware.org/ml/gdb-patches/2020-02/msg00383.html
>
> That's actually quite similar to what I considered first, before I
> changed my mind. Whatever.
Doing it in gdbserver/ has the advantage that it stays under gdbserver's
control, so it doesn't need syncing code with the gcc tree. I know of at
least one off-tree port that uses gdbserver in a host != target scenario,
so I imagine that this condition will evolve over time.
Also, this way, changes in this area don't require running autoconf to
regenerate configure.
I'm not seeing any downside.
>
> However I would expect `exit' not to be what we want in a sourced script
> (I did this differently; see below).
Good point, somehow did not think of that.
It worked in my patch because we source the script in a sub-shell.
But it's clearer/better to not rely on that.
>
> case "${host}" in
> + ${target})
> + gdbserver_host=${host}
> + ;;
> + *)
> + gdbserver_host=NONE
> + ;;
if/else reads more to-the-point to me, so I tweaked it that
way, and merged it in (to binutils-gdb), like below.
I'm sorry for not noticing your earlier patch.
From f20e3e823d56e54ffe56792ea6a2fe947c2dec0d Mon Sep 17 00:00:00 2001
From: "Maciej W. Rozycki" <macro@wdc.com>
Date: Wed, 12 Feb 2020 13:50:30 +0000
Subject: [PATCH] Disable gdbserver on host != target configurations
Correct fallout from commit 919adfe84092 ("Move gdbserver to top level")
and revert to not building `gdbserver' in a cross-configuration, that is
where host != target, matching the documented behaviour. We have no way
to support non-native `gdbserver', and native `gdbserver' is usually of
no use with cross-GDB of the chosen host.
gdbserver/ChangeLog:
2020-02-12 Maciej W. Rozycki <macro@wdc.com>
Pedro Alves <palves@redhat.com>
Skip building gdbserver in a cross-configuration.
* configure.srv: Set $gdbserver_host depending on whether $target
is $host. Use $gdbserver_host instead of $host.
---
gdbserver/ChangeLog | 7 +++++++
gdbserver/configure.srv | 11 +++++++++--
2 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/gdbserver/ChangeLog b/gdbserver/ChangeLog
index 09707067730..709ef23674c 100644
--- a/gdbserver/ChangeLog
+++ b/gdbserver/ChangeLog
@@ -1,3 +1,10 @@
+2020-02-12 Maciej W. Rozycki <macro@wdc.com>
+ Pedro Alves <palves@redhat.com>
+
+ Skip building gdbserver in a cross-configuration.
+ * configure.srv: Set $gdbserver_host depending on whether $target
+ is $host. Use $gdbserver_host instead of $host.
+
2020-02-11 Simon Marchi <simon.marchi@efficios.com>
* configure: Re-generate.
diff --git a/gdbserver/configure.srv b/gdbserver/configure.srv
index 2e83cbdc07f..375ac0aeb2a 100644
--- a/gdbserver/configure.srv
+++ b/gdbserver/configure.srv
@@ -33,9 +33,16 @@ ipa_ppc_linux_regobj="powerpc-32l-ipa.o powerpc-altivec32l-ipa.o powerpc-vsx32l-
# these files over and over again.
srv_linux_obj="linux-low.o nat/linux-osdata.o nat/linux-procfs.o nat/linux-ptrace.o nat/linux-waitpid.o nat/linux-personality.o nat/linux-namespaces.o fork-child.o nat/fork-inferior.o"
-# Input is taken from the "${host}" variable.
+# Input is taken from the "${host}" and "${target}" variables.
-case "${host}" in
+# GDBserver can only debug native programs.
+if test "${target}" = "${host}"; then
+ gdbserver_host=${host}
+else
+ gdbserver_host=
+fi
+
+case "${gdbserver_host}" in
aarch64*-*-linux*) srv_tgtobj="linux-aarch64-low.o"
srv_tgtobj="$srv_tgtobj nat/aarch64-linux-hw-point.o"
srv_tgtobj="$srv_tgtobj linux-aarch32-low.o"
base-commit: 38de8abe21fe17c31888094bd860a84f88cb5749
--
2.14.5
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] configure: Re-disable building cross-gdbserver
2020-02-12 13:56 ` Pedro Alves
@ 2020-02-13 23:48 ` Maciej W. Rozycki
0 siblings, 0 replies; 5+ messages in thread
From: Maciej W. Rozycki @ 2020-02-13 23:48 UTC (permalink / raw)
To: Pedro Alves; +Cc: Tom Tromey, gcc-patches, gdb-patches, binutils
On Wed, 12 Feb 2020, Pedro Alves wrote:
> > That's actually quite similar to what I considered first, before I
> > changed my mind. Whatever.
>
> Doing it in gdbserver/ has the advantage that it stays under gdbserver's
> control, so it doesn't need syncing code with the gcc tree. I know of at
> least one off-tree port that uses gdbserver in a host != target scenario,
> so I imagine that this condition will evolve over time.
Sure, that makes sense to me.
> > case "${host}" in
> > + ${target})
> > + gdbserver_host=${host}
> > + ;;
> > + *)
> > + gdbserver_host=NONE
> > + ;;
> if/else reads more to-the-point to me, so I tweaked it that
> way, and merged it in (to binutils-gdb), like below.
Great, thanks for handling this!
> I'm sorry for not noticing your earlier patch.
No worries, I'm glad we've got this sorted.
Maciej
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2020-02-13 23:48 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-02-08 16:21 [PATCH] configure: Re-disable building cross-gdbserver Maciej W. Rozycki
2020-02-11 15:24 ` Tom Tromey
2020-02-11 21:02 ` Maciej W. Rozycki
2020-02-12 13:56 ` Pedro Alves
2020-02-13 23:48 ` Maciej W. Rozycki
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).