unicore32: Mark as deprecated

Message ID 20180308154016.22228-1-peter.maydell@linaro.org
State Rejected
Headers show
Series
  • unicore32: Mark as deprecated
Related show

Commit Message

Peter Maydell March 8, 2018, 3:40 p.m.
We intend to remove the unicore32 target code:

 * It has had no changes since 2012 that were not tree-wide
   maintenance/API changes/other global updates
 * We dropped the linux-user unicore32 support in 2016 because of a
   clash between the 'old ABI' that it was implementing and the ABI
   that's actually in the upstream Linux kernel, and there have been
   no moves to get this fixed so we could re-enable it, nor any
   complaints when it went away
 * Linux is now planning to drop unicore support:
   https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg1619640.html
 * there is apparently no upstream gcc support for the architecture
 * nobody has ever reported a bug or problem to us about it

This commit patches the unicore32 target to warn on startup that it
is deprecated, and adds a note to our documentation's deprecation
section.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

---
I proposed deprecation of unicore32 on 27th Feb:
https://lists.gnu.org/archive/html/qemu-devel/2018-02/msg06634.html
and got several 'yes'es and no objections. This is the "changing
the codebase" part of that, ready for the 2.12 codefreeze.

We should also note this in the 2.12 Changelog.
---
 target/unicore32/cpu.c | 11 +++++++++++
 qemu-doc.texi          |  5 +++++
 2 files changed, 16 insertions(+)

-- 
2.16.2

Comments

Daniel P. Berrangé March 8, 2018, 4:05 p.m. | #1
On Thu, Mar 08, 2018 at 03:40:16PM +0000, Peter Maydell wrote:
> We intend to remove the unicore32 target code:

> 

>  * It has had no changes since 2012 that were not tree-wide

>    maintenance/API changes/other global updates

>  * We dropped the linux-user unicore32 support in 2016 because of a

>    clash between the 'old ABI' that it was implementing and the ABI

>    that's actually in the upstream Linux kernel, and there have been

>    no moves to get this fixed so we could re-enable it, nor any

>    complaints when it went away

>  * Linux is now planning to drop unicore support:

>    https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg1619640.html

>  * there is apparently no upstream gcc support for the architecture

>  * nobody has ever reported a bug or problem to us about it

> 

> This commit patches the unicore32 target to warn on startup that it

> is deprecated, and adds a note to our documentation's deprecation

> section.

> 

> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

> ---

> I proposed deprecation of unicore32 on 27th Feb:

> https://lists.gnu.org/archive/html/qemu-devel/2018-02/msg06634.html

> and got several 'yes'es and no objections. This is the "changing

> the codebase" part of that, ready for the 2.12 codefreeze.

> 

> We should also note this in the 2.12 Changelog.

> ---

>  target/unicore32/cpu.c | 11 +++++++++++

>  qemu-doc.texi          |  5 +++++

>  2 files changed, 16 insertions(+)

> 

> diff --git a/target/unicore32/cpu.c b/target/unicore32/cpu.c

> index 29d160a88d..e95fa55b8e 100644

> --- a/target/unicore32/cpu.c

> +++ b/target/unicore32/cpu.c

> @@ -19,6 +19,8 @@

>  #include "migration/vmstate.h"

>  #include "exec/exec-all.h"

>  #include "fpu/softfloat.h"

> +#include "sysemu/qtest.h"

> +#include "qemu/error-report.h"

>  

>  static void uc32_cpu_set_pc(CPUState *cs, vaddr value)

>  {

> @@ -120,6 +122,15 @@ static void uc32_cpu_initfn(Object *obj)

>  #endif

>  

>      tlb_flush(cs);

> +

> +    /* We can't do this in class_init because the qtest_enabled

> +     * flag hasn't yet been initialized there. Luckily the Unicore32

> +     * machines don't support SMP so the message will only appear once.

> +     */

> +    if (!qtest_enabled()) {

> +        warn_report("qemu-system-unicore32 is deprecated "

> +                    "and will be removed in a future QEMU release.");

> +    }

>  }

>  

>  static const VMStateDescription vmstate_uc32_cpu = {

> diff --git a/qemu-doc.texi b/qemu-doc.texi

> index 39e38c87ec..0e8609c11c 100644

> --- a/qemu-doc.texi

> +++ b/qemu-doc.texi

> @@ -2779,6 +2779,11 @@ support page sizes < 4096 any longer.

>  The ``xlnx-ep108'' machine has been replaced by the ``xlnx-zcu102'' machine.

>  The ``xlnx-zcu102'' machine has the same features and capabilites in QEMU.

>  

> +@subsection Unicore32 targets (since 2.12.0)

> +

> +The ``unicore32'' CPU target and ``qemu-system-unicore32'' will be removed,

> +since this architecture is unmaintained.

> +

>  @node License

>  @appendix License


Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>



Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|

Patch

diff --git a/target/unicore32/cpu.c b/target/unicore32/cpu.c
index 29d160a88d..e95fa55b8e 100644
--- a/target/unicore32/cpu.c
+++ b/target/unicore32/cpu.c
@@ -19,6 +19,8 @@ 
 #include "migration/vmstate.h"
 #include "exec/exec-all.h"
 #include "fpu/softfloat.h"
+#include "sysemu/qtest.h"
+#include "qemu/error-report.h"
 
 static void uc32_cpu_set_pc(CPUState *cs, vaddr value)
 {
@@ -120,6 +122,15 @@  static void uc32_cpu_initfn(Object *obj)
 #endif
 
     tlb_flush(cs);
+
+    /* We can't do this in class_init because the qtest_enabled
+     * flag hasn't yet been initialized there. Luckily the Unicore32
+     * machines don't support SMP so the message will only appear once.
+     */
+    if (!qtest_enabled()) {
+        warn_report("qemu-system-unicore32 is deprecated "
+                    "and will be removed in a future QEMU release.");
+    }
 }
 
 static const VMStateDescription vmstate_uc32_cpu = {
diff --git a/qemu-doc.texi b/qemu-doc.texi
index 39e38c87ec..0e8609c11c 100644
--- a/qemu-doc.texi
+++ b/qemu-doc.texi
@@ -2779,6 +2779,11 @@  support page sizes < 4096 any longer.
 The ``xlnx-ep108'' machine has been replaced by the ``xlnx-zcu102'' machine.
 The ``xlnx-zcu102'' machine has the same features and capabilites in QEMU.
 
+@subsection Unicore32 targets (since 2.12.0)
+
+The ``unicore32'' CPU target and ``qemu-system-unicore32'' will be removed,
+since this architecture is unmaintained.
+
 @node License
 @appendix License