* RFC: Deprecate the ARM simulator
@ 2024-09-23 13:31 Nick Clifton via Gdb
2024-09-23 16:17 ` Simon Marchi via Gdb
2024-09-23 16:45 ` Richard Earnshaw (lists) via Gdb
0 siblings, 2 replies; 6+ messages in thread
From: Nick Clifton via Gdb @ 2024-09-23 13:31 UTC (permalink / raw)
To: gdb, Richard Earnshaw
[-- Attachment #1: Type: text/plain, Size: 946 bytes --]
Hi Guys,
I would like to deprecate or even delete the ARM simulator.
Although I am listed as the maintainer for the sim, I have not
made any improvements to it for years and it is completely
unable to handle modern ARM cores. The only updates to the
sources in the last few years have been to fix compilation
issues, and basically it has bit-rotted away.
It is not entirely clear to me how a sim target should be
deprecated. I am attaching a patch that shows one possible
method - adding code to the sim/configure.ac file to indicate
that the target is deprecated. An alternative would be to
add the sim target to the noconfigdirs list that is constructed
in the top level configure.ac file. Although I think that
that list is for components that do not support the target at
all, rather than components where the target is deprecated.
Anyway, thoughts, comments, suggestions ?
Cheers
Nick
[-- Attachment #2: sim.configure.ac.patch --]
[-- Type: text/x-patch, Size: 834 bytes --]
diff --git a/sim/configure.ac b/sim/configure.ac
index fad5b71ee59..e9ec6e70efc 100644
--- a/sim/configure.ac
+++ b/sim/configure.ac
@@ -84,6 +84,18 @@ m4_define([SIM_TARGET], [dnl
AM_CONDITIONAL([SIM_ENABLE_ARCH_$2], [${sim_enable_arch_$2}])
])
+case $target in
+ arm*-*-* | \
+ null)
+ if test "x$enable_obsolete" != xyes; then
+ echo "*** Configuration $targ is obsolete." >&2
+ echo "*** Specify --enable-obsolete to build it anyway." >&2
+ echo "*** Support will be REMOVED in the next major release of GDB," >&2
+ echo "*** unless a maintainer comes forward." >&2
+ exit 1
+ fi;;
+esac
+
dnl WHEN ADDING ENTRIES TO THIS MATRIX:
dnl Make sure that the left side always has two dashes. Otherwise you can get
dnl spurious matches. Even for unambiguous cases, do this as a convention, else
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: RFC: Deprecate the ARM simulator
2024-09-23 13:31 RFC: Deprecate the ARM simulator Nick Clifton via Gdb
@ 2024-09-23 16:17 ` Simon Marchi via Gdb
2024-09-23 16:34 ` Nick Clifton via Gdb
2024-09-23 16:45 ` Richard Earnshaw (lists) via Gdb
1 sibling, 1 reply; 6+ messages in thread
From: Simon Marchi via Gdb @ 2024-09-23 16:17 UTC (permalink / raw)
To: Nick Clifton, gdb, Richard Earnshaw
On 9/23/24 9:31 AM, Nick Clifton via Gdb wrote:
> Hi Guys,
>
> I would like to deprecate or even delete the ARM simulator.
>
> Although I am listed as the maintainer for the sim, I have not
> made any improvements to it for years and it is completely
> unable to handle modern ARM cores. The only updates to the
> sources in the last few years have been to fix compilation
> issues, and basically it has bit-rotted away.
>
> It is not entirely clear to me how a sim target should be
> deprecated. I am attaching a patch that shows one possible
> method - adding code to the sim/configure.ac file to indicate
> that the target is deprecated. An alternative would be to
> add the sim target to the noconfigdirs list that is constructed
> in the top level configure.ac file. Although I think that
> that list is for components that do not support the target at
> all, rather than components where the target is deprecated.
>
> Anyway, thoughts, comments, suggestions ?
>
> Cheers
> Nick
Thanks for being proactive with this. Is `--enable-obsolete` something
that already exists?
When we deprecate / remove ports in GDB, we currently don't do anything
like this, if I recall correctly we just announce on the mailing list
that it will be removed in the next major version, and then later remove
it. But I think that having it disabled by default and enabled with a
switch like `--enable-obsolete` is a good idea. People downstream who
use that feature are not likely to follow the gdb or binutils mailing
lists, so this will make them notice, and it's still relatively easy for
them to get the feature back in that release.
Simon
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: RFC: Deprecate the ARM simulator
2024-09-23 16:17 ` Simon Marchi via Gdb
@ 2024-09-23 16:34 ` Nick Clifton via Gdb
0 siblings, 0 replies; 6+ messages in thread
From: Nick Clifton via Gdb @ 2024-09-23 16:34 UTC (permalink / raw)
To: Simon Marchi, gdb, Richard Earnshaw
Hi Simon,
>> I would like to deprecate or even delete the ARM simulator.
>> It is not entirely clear to me how a sim target should be
>> deprecated. I am attaching a patch that shows one possible
>> method - adding code to the sim
> Thanks for being proactive with this. Is `--enable-obsolete` something
> that already exists?
Not in GDB land. I actually stole the code from the binutils where we use
it when we want to deprecate old targets. First they get moved into the
you-cannot-build-without-enable-obsolete list and then after a release has
been made they get completely deprecated. (Unless someone volunteers to
take over maintainership of the port, but this rarely happens).
The problem is that this entire process is manual. There is no automatic
way of deprecating a port. So it is up to someone to remember to make the
necessary changes. Still at least it does work and we do deprecate things.
> When we deprecate / remove ports in GDB, we currently don't do anything
> like this, if I recall correctly we just announce on the mailing list
> that it will be removed in the next major version, and then later remove
> it. But I think that having it disabled by default and enabled with a
> switch like `--enable-obsolete` is a good idea. People downstream who
> use that feature are not likely to follow the gdb or binutils mailing
> lists, so this will make them notice, and it's still relatively easy for
> them to get the feature back in that release.
Right. If someone cares then they can step up and take over the code.
Cheers
Nick
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: RFC: Deprecate the ARM simulator
2024-09-23 13:31 RFC: Deprecate the ARM simulator Nick Clifton via Gdb
2024-09-23 16:17 ` Simon Marchi via Gdb
@ 2024-09-23 16:45 ` Richard Earnshaw (lists) via Gdb
2024-09-24 11:03 ` Maciej W. Rozycki
2024-09-24 14:18 ` Nick Clifton via Gdb
1 sibling, 2 replies; 6+ messages in thread
From: Richard Earnshaw (lists) via Gdb @ 2024-09-23 16:45 UTC (permalink / raw)
To: Nick Clifton, gdb
On 23/09/2024 14:31, Nick Clifton via Gdb wrote:
> Hi Guys,
>
> I would like to deprecate or even delete the ARM simulator.
>
> Although I am listed as the maintainer for the sim, I have not
> made any improvements to it for years and it is completely
> unable to handle modern ARM cores. The only updates to the
> sources in the last few years have been to fix compilation
> issues, and basically it has bit-rotted away.
>
> It is not entirely clear to me how a sim target should be
> deprecated. I am attaching a patch that shows one possible
> method - adding code to the sim/configure.ac file to indicate
> that the target is deprecated. An alternative would be to
> add the sim target to the noconfigdirs list that is constructed
> in the top level configure.ac file. Although I think that
> that list is for components that do not support the target at
> all, rather than components where the target is deprecated.
>
> Anyway, thoughts, comments, suggestions ?
>
> Cheers
> Nick
I've no objections to this just being removed entirely; the code is ancient.
+case $target in
+ arm*-*-* | \
+ null)
+ if test "x$enable_obsolete" != xyes; then
+ echo "*** Configuration $targ is obsolete." >&2
+ echo "*** Specify --enable-obsolete to build it anyway." >&2
+ echo "*** Support will be REMOVED in the next major release of
GDB," >&2
+ echo "*** unless a maintainer comes forward." >&2
+ exit 1
+ fi;;
+esac
+
Won't this break builds for arm users unless they now explicitly specify
--disable-sim? That's a bit aggressive, IMO, and might cause problems
for multi-target builds that want some sims, if available. We don't
want to make life harder for those just trying to build gdb.
R.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: RFC: Deprecate the ARM simulator
2024-09-23 16:45 ` Richard Earnshaw (lists) via Gdb
@ 2024-09-24 11:03 ` Maciej W. Rozycki
2024-09-24 14:18 ` Nick Clifton via Gdb
1 sibling, 0 replies; 6+ messages in thread
From: Maciej W. Rozycki @ 2024-09-24 11:03 UTC (permalink / raw)
To: Richard Earnshaw (lists); +Cc: Nick Clifton, gdb
On Mon, 23 Sep 2024, Richard Earnshaw (lists) via Gdb wrote:
> Won't this break builds for arm users unless they now explicitly specify
> --disable-sim? That's a bit aggressive, IMO, and might cause problems for
> multi-target builds that want some sims, if available. We don't want to make
> life harder for those just trying to build gdb.
ISTM this change needs to be combined with one to add sim to noconfigdirs
at the top level for arm*-*-* targets unless --enable-sim has been also
explicitly given. There's previous art for such an arrangement in AFAICS.
Maciej
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: RFC: Deprecate the ARM simulator
2024-09-23 16:45 ` Richard Earnshaw (lists) via Gdb
2024-09-24 11:03 ` Maciej W. Rozycki
@ 2024-09-24 14:18 ` Nick Clifton via Gdb
1 sibling, 0 replies; 6+ messages in thread
From: Nick Clifton via Gdb @ 2024-09-24 14:18 UTC (permalink / raw)
To: Richard Earnshaw (lists), gdb
Hi Richard,
>> I would like to deprecate or even delete the ARM simulator.
> Won't this break builds for arm users unless they now explicitly specify --disable-sim? That's a bit aggressive, IMO, and might cause problems for multi-target builds that
> want some sims, if available. We don't want to make life harder for those just trying to build gdb.
I am totally OK with just deleting the arm sim altogether.
I was just not sure if there was a GDB approved method for doing so.
So instead of the deprecating patch, how about this one to add the sim
directory to the top level configure script's noconfigdirs list for ARM
targets:
(Obviously a full patch would include the regenerated configure file
file. I am just posting this patch for discussion purposes).
---------------------------------------------------------------------
diff --git a/configure.ac b/configure.ac
index 6fd9e77f20a..7d99cdda8fa 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1003,6 +1003,13 @@ case "${target}" in
;;
esac
+# The ARM simulator has been deprecated for all ARM targets.
+case "${target}" in
+ arm*-*-*)
+ noconfigdirs="$noconfigdirs sim"
+ ;;
+esac
+
case "${target}" in
*-*-chorusos)
;;
@@ -1014,7 +1021,7 @@ case "${target}" in
;;
arm-*-darwin*)
noconfigdirs="$noconfigdirs ld gas gdb gprof"
- noconfigdirs="$noconfigdirs sim target-rda"
+ noconfigdirs="$noconfigdirs target-rda"
;;
powerpc-*-darwin*)
noconfigdirs="$noconfigdirs ld gas gdb gprof"
--------------------------------------------------------------
I am also assuming that this patch, or something similar, should go in first
before any simulator sources are actually deleted...
Cheers
Nick
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2024-09-24 14:19 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-09-23 13:31 RFC: Deprecate the ARM simulator Nick Clifton via Gdb
2024-09-23 16:17 ` Simon Marchi via Gdb
2024-09-23 16:34 ` Nick Clifton via Gdb
2024-09-23 16:45 ` Richard Earnshaw (lists) via Gdb
2024-09-24 11:03 ` Maciej W. Rozycki
2024-09-24 14:18 ` Nick Clifton via Gdb
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox