From: Peter Maydell <peter.maydell@linaro.org>
To: qemu-devel@nongnu.org
Cc: patches@linaro.org, Riku Voipio <riku.voipio@linaro.org>,
Laurent Vivier <laurent@vivier.eu>,
Richard Henderson <rth@twiddle.net>
Subject: [Qemu-devel] [PATCH 0/5] linux-user: fix dependencies, forbid unknown host arch
Date: Tue, 14 Jun 2016 10:52:02 +0100 [thread overview]
Message-ID: <1465897927-4719-1-git-send-email-peter.maydell@linaro.org> (raw)
The main aim of this patchset is to fix a problem with the dependency
handling of the hostdep.h files added in in commit 4d330cee37a21.
It needs to be applied before we add any more architecture-specific
hostdep.h files (ie before rth's patchset for ppc/arm/i386/s390/etc).
The intent of commit 4d330cee3 was that host architectures which needed
a hostdep.h could provide it, and the build system would automatically
fall back to a generic version if there was no version for the host
architecture. Although this works, it has a flaw: if a subsequent
commit switches an architecture from "uses generic/hostdep.h" to
"uses its own hostdep.h" nothing in the makefile dependencies notices
this and so doing a rebuild without a manual 'make clean' will fail.
So we drop the idea of having a 'generic' version in favour of
every architecture we support having its own hostdep.h, even if
it doesn't have anything in it. (There are only thirteen of these.)
There is an oddball corner case for linux-user which is that we were
permitting 'unknown' host architectures in configure even though we
need to know about the host CPU architecture for linux-user to work
(in particular user-exec.c has code for handling signals that needs
to know about that host's context structures). Cleaning this up
first means we don't need to have a weird and mostly useless
unknown/hostdep.h. The only two configurations which could in theory
use ARCH=unknown without failing to compile due to missing
user-exec.c support are:
* linux-user targets on M68K hosts using TCI
* linux-user targets on HPPA hosts using TCI
I doubt anybody is actually trying to use these in practice, though:
* interpreted TCG on a slow host CPU would be unusably slow
* the m68k user-exec.c support is missing is_write detection so guest
code which writes to the same page it is executing from was broken
(will include any guest program using signals)
* HPPA TCG backend support was dropped two and a half years ago
with no complaints
So rather than raising m68k or hppa to "actually known architecture"
this patchset drops support for them entirely as linux-user hosts,
and deletes the now-unused code from user-exec.c. A bonus extra
patch removes some OSX code from user-exec.c which hasn't been used
since we dropped darwin-user.
thanks
-- PMM
Peter Maydell (5):
configure: Don't override ARCH=unknown if enabling TCI
configure: Don't allow user-only targets for unknown CPU architectures
user-exec: Delete now-unused hppa and m68k cpu_signal_handler() code
user-exec: Remove unused code for OSX hosts
linux-user: Create a hostdep.h for each host architecture
Makefile.target | 5 +-
configure | 8 ++-
linux-user/host/aarch64/hostdep.h | 15 ++++++
linux-user/host/arm/hostdep.h | 15 ++++++
linux-user/host/generic/hostdep.h | 20 -------
linux-user/host/i386/hostdep.h | 15 ++++++
linux-user/host/ia64/hostdep.h | 15 ++++++
linux-user/host/mips/hostdep.h | 15 ++++++
linux-user/host/ppc/hostdep.h | 15 ++++++
linux-user/host/ppc64/hostdep.h | 15 ++++++
linux-user/host/s390/hostdep.h | 15 ++++++
linux-user/host/s390x/hostdep.h | 15 ++++++
linux-user/host/sparc/hostdep.h | 15 ++++++
linux-user/host/sparc64/hostdep.h | 15 ++++++
linux-user/host/x32/hostdep.h | 15 ++++++
user-exec.c | 107 +-------------------------------------
16 files changed, 189 insertions(+), 131 deletions(-)
create mode 100644 linux-user/host/aarch64/hostdep.h
create mode 100644 linux-user/host/arm/hostdep.h
delete mode 100644 linux-user/host/generic/hostdep.h
create mode 100644 linux-user/host/i386/hostdep.h
create mode 100644 linux-user/host/ia64/hostdep.h
create mode 100644 linux-user/host/mips/hostdep.h
create mode 100644 linux-user/host/ppc/hostdep.h
create mode 100644 linux-user/host/ppc64/hostdep.h
create mode 100644 linux-user/host/s390/hostdep.h
create mode 100644 linux-user/host/s390x/hostdep.h
create mode 100644 linux-user/host/sparc/hostdep.h
create mode 100644 linux-user/host/sparc64/hostdep.h
create mode 100644 linux-user/host/x32/hostdep.h
--
1.9.1
next reply other threads:[~2016-06-14 9:52 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-14 9:52 Peter Maydell [this message]
2016-06-14 9:52 ` [Qemu-devel] [PATCH 1/5] configure: Don't override ARCH=unknown if enabling TCI Peter Maydell
2016-06-14 9:57 ` Laurent Vivier
2016-06-14 9:59 ` Laurent Vivier
2016-06-14 16:30 ` Richard Henderson
2016-06-14 9:52 ` [Qemu-devel] [PATCH 2/5] configure: Don't allow user-only targets for unknown CPU architectures Peter Maydell
2016-06-14 9:58 ` Laurent Vivier
2016-06-14 16:31 ` Richard Henderson
2016-06-14 9:52 ` [Qemu-devel] [PATCH 3/5] user-exec: Delete now-unused hppa and m68k cpu_signal_handler() code Peter Maydell
2016-06-14 9:58 ` Laurent Vivier
2016-06-14 16:32 ` Richard Henderson
2016-06-14 9:52 ` [Qemu-devel] [PATCH 4/5] user-exec: Remove unused code for OSX hosts Peter Maydell
2016-06-14 9:58 ` Laurent Vivier
2016-06-14 16:33 ` Richard Henderson
2016-06-14 9:52 ` [Qemu-devel] [PATCH 5/5] linux-user: Create a hostdep.h for each host architecture Peter Maydell
2016-06-14 9:58 ` Laurent Vivier
2016-06-14 16:34 ` Richard Henderson
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=1465897927-4719-1-git-send-email-peter.maydell@linaro.org \
--to=peter.maydell@linaro.org \
--cc=laurent@vivier.eu \
--cc=patches@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=riku.voipio@linaro.org \
--cc=rth@twiddle.net \
/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;
as well as URLs for NNTP newsgroup(s).