Commit Graph
154 Commits
Author SHA1 Message Date
Juergen Gross 1eb944f650 tools: remove qemu-traditional
Remove qemu traditional from the tree.

Signed-off-by: Juergen Gross <jgross@suse.com>
Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com> # CHANGELOG.md
Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>
2025-06-02 10:31:21 +02:00
Andrew Cooper aa78a7d10c xen: Update toolchain requirements to GCC 5.1/Binutils 2.25 or Clang/LLVM 11
GCC 4.1.2 is from 2007, and Binutils 2.16 is a similar vintage.  Clang 3.5 is
from 2014.  Supporting toolchains this old is a massive development and
testing burden.

Set a minimum baseline of GCC 5.1 across the board, along with Binutils 2.25
which is the same age.  These were chosen *3 years ago* as Linux's minimum
requirements because even back then, they were ubiquitous in distros.  Choose
Clang/LLVM 11 as a baseline for similar reasons; the Linux commit making this
change two years ago cites a laudry list of code generation bugs.

This will allow us to retire a lot of compatiblity logic, and start using new
features previously unavailable because of no viable compatibility option.

Merge the ARM 32bit and 64bit sections now they're the same.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Julien Grall <jgrall@amazon.com>
Acked-by: Roger Pau Monné <roger.pau@citrix.com>
2025-03-19 16:44:00 +00:00
Oleksii Kurochko 85caf5a022 xen/README: add compiler and binutils versions for RISCV-64
Considering that the Zbb extension is supported since GCC version 12 [1]
and that older GCC versions do not support Z extensions in -march (I haven't
faced this issue for GCC >=11.2), leading to compilation failures,
the baseline version for GCC is set to 12.2 and for GNU binutils to 2.39.

The GCC version is set to 12.2 instead of 12.1 because Xen's GitLab CI uses
Debian 12, which includes GCC 12.2 and GNU binutils 2.39.

[1] https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=149e217033f01410a9783c5cb2d020cf8334ae4c

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
2025-03-05 15:43:55 +01:00
Andrew Cooper dbe60f244c Update Xen to 4.21
Xen 4.20 has branched.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
2025-02-21 14:55:13 +00:00
Andrew Cooper 19730dbb3f Update Xen version to 4.20-rc
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
Release-Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
2025-01-10 15:26:41 +00:00
Julien Grall f66e523189 Set version to 4.20; 4.19 has branched
Signed-off-by: Julien Grall <julien@xen.org>
2024-07-18 15:42:58 +01:00
Andrew Cooper d49ba6bf8f build: Drop xorg-x11 as a build dependency
The history on this one is complicated.  The note to README was added in
commit 1f95747a4f ("Add openssl-dev and xorg-x11-dev to README") in 2007.

At the time, there was a vendered version of Qemu in xen.git with a local
modification using <X11/keysymdef.h> to access the monitor console over VNC.

The final reference to keysymdef.h was dropped in commit 85896a7c4d ("build:
add autoconf to replace custom checks in tools/check") in 2012.  The next
prior mention was in 2009 with commit a8ccb671c3 ("tools: fix x11 check")
noting that x11 was not a direct dependcy of Xen; it was transitive through
SDL for Qemu for source-based distros.

It appears there may have been other unspecified dependencies on xorg,
e.g. the use of lndir by unmodified_drivers which are no longer relevant
either.

These days its only the Debian based dockerfiles which install xorg-x11, and
Qemu builds fine in these and others without x11.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Roger Pau Monné <roger.pau@citrix.com>
Release-Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
2024-07-09 18:11:35 +01:00
Andrew Cooper cb3a371469 build: Drop openssl as a build dependency
The final user was blktap1, removed in Xen 4.6.

Fixes: f6bcc03508 ("tools: remove blktap1")
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Roger Pau Monné <roger.pau@citrix.com>
Release-Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
2024-07-09 18:10:24 +01:00
Julien Grall 4a73eb4c20 Update Xen version to 4.19-rc
Signed-off-by: Julien Grall <jgrall@amazon.com>
2024-07-01 18:31:39 +01:00
Julien Grall 4294987c7a Set version to 4.19; 4.18 has branched
Signed-off-by: Julien Grall <julien@xen.org>
2023-10-30 09:12:54 +00:00
Julien Grall a8ab67cae0 Update Xen version to 4.18-rc
Signed-off-by: Julien Grall <jgrall@amazon.com>
Release-acked-by: Henry Wang <Henry.Wang@arm.com>
2023-09-29 09:09:29 +01:00
Javi Merino 932c3c8b4b README: Remove old note about the build system's python expectation
Changesets 5852ca4852 (build: fix tools/configure in case only python3
exists) and c8a8645f1e ("xen/build: Automatically locate a suitable python
interpreter") cause the build to look for python3, python and python2 in that
order.

Remove the outdated note from the README.

Signed-off-by: Javi Merino <javi.merino@cloud.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
2023-09-20 20:53:58 +01:00
Marek Marczykowski-Górecki 2a353c048c tools: Don't use distutils in configure or Makefile
Python distutils is deprecated and is going to be removed in Python
3.12.  distutils.sysconfig is available as the sysconfig module in
stdlib since Python 2.7 and Python 3.2, so use that directly.

Update the README to reflect that we now depend on Python 2.7.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Signed-off-by: Javi Merino <javi.merino@cloud.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
[Regen ./configure]
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
2023-09-20 20:53:58 +01:00
Demi Marie Obenour 054acfc444 misc: Replace git:// and http:// with https://
Obtaining code over an insecure transport is a terrible idea for
blatently obvious reasons.  Even for non-executable data, insecure
transports are considered deprecated.

This patch enforces the use of secure transports in misc places.
All URLs are known to work.

Signed-off-by: Demi Marie Obenour <demi@invisiblethingslab.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
2023-03-24 16:29:15 +00:00
Julien Grall aab5341204 Set version to 4.18; 4.17 has branched
Signed-off-by: Julien Grall <jgrall@amazon.com>
2022-12-01 14:01:22 +00:00
Julien Grall 9029bc265c Update Xen version to 4.17-rc
Signed-off-by: Julien Grall <jgrall@amazon.com>
Release-acked-by: Henry Wang <Henry.Wang@arm.com>
2022-10-07 14:30:01 +01:00
Andrew Cooper ab2977b027 README: State POSIX compatibility as a requirement for AWK
In particular, we support FreeBSD and NetBSD build environments, and some
Linux build environments use MAWK over GAWK anyway.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
2022-07-15 12:55:16 +01:00
Marek Marczykowski-Górecki 4d037425dc x86: Build check for embedded endbr64 instructions
An interesting corner case occurs when the byte sequence making up endbr64
ends up on a non-instruction boundary.  Such embedded instructions mark legal
indirect branch targets as far as the CPU is concerned, which aren't legal as
far as the logic is concerned.

When CET-IBT is active, check for embedded byte sequences.  Example failures
look like:

  check-endbr.sh xen-syms Fail: Found 2 embedded endbr64 instructions
  0xffff82d040325677: test_endbr64 at /local/xen.git/xen/arch/x86/x86_64/entry.S:28
  0xffff82d040352da6: init_done at /local/xen.git/xen/arch/x86/setup.c:675

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
2022-02-23 15:33:43 +00:00
Ian Jackson 8579d208ab Set version to 4.17; 4.16 has branched
Signed-off-by: Ian Jackson <iwj@xenproject.org>
2021-11-23 16:54:18 +00:00
Ian Jackson 9f8434d778 README, xen/Makefile: Change version to 4.16-rc
Signed-off-by: Ian Jackson <iwj@xenproject.org>
2021-11-01 12:36:26 +00:00
Andrew Cooper e21a6a4f96 tools: Drop gettext as a build dependency
It has not been a dependency since at least 4.13.  Remove its mandatory check
from ./configure.

Annotate the dependency in the CI dockerfiles, and drop them from CirrusCI and
TravisCI.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Roger Pau Monné <roger.pau@citrix.com>
2021-04-09 10:31:17 +01:00
Ian Jackson a04509d34d Branching: Update version files etc. for newly unstable
Signed-off-by: Ian Jackson <iwj@xenproject.org>
2021-03-24 16:28:00 +00:00
Julien Grall 21657ad4f0 xen: Bump the minimum version of GCC supported to 4.9 for arm32 and 5.1 on arm64
Compilers older than 4.8 have known codegen issues which can lead to
silent miscompilation:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58145

Furthermore, pre-4.9 GCC have known bugs (including things like
internal compiler errors on Arm) which would require workaround (I
haven't checked if we have any in Xen).

The minimum version of GCC to build the hypervisor on arm is now
raised to 4.9.

In addition to that, on arm64, GCC version >= 4.9 and < 5.1 have been
shown to emit memory references beyond the stack pointer, resulting in
memory corruption if an interrupt is taken after the stack pointer has
been adjusted but before the reference has been executed.

Therefore, the minimum for arm64 is raised to 5.1.

Signed-off-by: Julien Grall <jgrall@amazon.com>
Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Release-Acked-by: Ian Jackson <iwj@xenproject.org>
2021-03-16 14:30:50 +00:00
Andrew Cooper 0eae016b6e tools/firmware: Build firmware as -ffreestanding
firmware should always have been -ffreestanding, as it doesn't execute in the
host environment.  -ffreestanding implies -fno-builtin, so replace the option.

inttypes.h isn't a freestanding header, but the 32bitbios_support.c only wants
the stdint.h types so switch to the more appropriate include.

This removes the build time dependency on a 32bit libc just to compile the
hvmloader and friends.

Update README and the TravisCI configuration.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Ian Jackson <iwj@xenproject.org>
Release-Acked-by: Ian Jackson <iwj@xenproject.org>
2021-03-01 23:19:39 +00:00
Ian Jackson 77d7b3540c Version numbers: Set to 4.15-rc
Signed-off-by: Ian Jackson <iwj@xenproject.org>
2021-03-01 14:12:05 +00:00
Jan Beulich 8169f82049 libxenguest: support zstd compressed kernels
This follows the logic used for other decompression methods utilizing an
external library, albeit here we can't ignore the 32-bit size field
appended to the compressed image - its presence causes decompression to
fail. Leverage the field instead to allocate the output buffer in one
go, i.e. without incrementally realloc()ing.

As far as configure.ac goes, I'm pretty sure there is a better (more
"standard") way of using PKG_CHECK_MODULES(). The construct also gets
put next to the other decompression library checks, albeit I think they
all ought to be x86-specific (e.g. placed in the existing case block a
few lines down).

Note that, where possible, instead of #ifdef-ing xen/*.h inclusions,
they get removed.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Wei Liu <wl@xen.org>
Reviewed-by: Ian Jackson <ian.jackson@eu.citrix.com>
Release-Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
2021-01-26 14:16:34 +01:00
Ian Jackson 3df0424e69 Branch Xen 4.15: Change version numbers
And rerun autogen.sh.  No changes other than to versions.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
2020-07-13 14:50:06 +01:00
Ian Jackson 726c78d14d Version changes for 4.14.0-rc
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
2020-06-08 15:18:20 +01:00
Ian Jackson 2a94100dd5 docs/README: Fix a broken url
There was a / missing here.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
Reviewed-by: Julien Grall <jgrall@amazon.com>
2020-03-30 15:27:17 +01:00
Ian Jackson 9465fac25e docs etc.: https: Fix references to other Xen pages
Change the url scheme to https.  This is all in-tree references to
xenbits and the main website except for those in Config.mk.

We leave Config.mk alone for now because those urls are used by CI
systems and we need to check that nothing breaks when we change the
download method.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
Reviewed-by: Julien Grall <jgrall@amazon.com>
2020-03-30 15:27:17 +01:00
Ian Jackson 7e1867b121 docs etc.: https: Fix references to wiki.xen[project].org
Change the url scheme to https.  This is all in-tree references to the
Xen wiki.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
Reviewed-by: Julien Grall <jgrall@amazon.com>
2020-03-30 15:27:06 +01:00
Ian Jackson b123ee5681 README: Run untabify
There were some hard tabs here.  Replace them with 8 spaces.

(I noticed this because my release technician work involves
untabifying this file.)

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
2019-11-29 15:50:36 +00:00
Ian Jackson 8b955796c5 Config.mk et al: Branch off Xen 4.14-unstable
Bump the version numbers everywhere and rerun autogen.sh.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
2019-11-29 14:46:34 +00:00
Ian Jackson 518c935fac Prep for 4.13.0-rc1: Set version to -rc
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
2019-10-14 11:31:31 +01:00
Wei Liu bdd0f3c9b0 README: document requirement about python
Provide information on what is expected from the build system
regarding python.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
2019-05-15 12:45:50 +01:00
Wei Liu 9b0bc91b3b README: remove requirement on Python 2
Now that all python scripts are compatible with Python 2.6 and above,
remove the restriction.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
2019-03-12 14:24:53 +00:00
Wei Liu 72288c1566 Update Python requirement to 2.6
CentOS 5, which was the reason for the 2.4 restriction, is EOL. CentOS
6 ships 2.6.

Bump the version to 2.6 in README. Update configure.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
2019-03-12 14:24:52 +00:00
Ian Jackson 100507b34b Branch for 4.12: change version numbers
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
2019-03-11 14:48:36 +00:00
George Dunlap 4deeaf2a3e README: Document python2 dependency
Much of the tools and configure makefile actually have a python2
dependency; specify this.  It also assumes that `python` points to `python2`;
document how to work around this on systems where this is false.

Also update second version requirement listed to match the first.

Signed-off-by: George Dunlap <george.dunlap@citrix.com>
Acked-by: Wei Liu <wei.liu2@citrix.com>
Release-acked-by: Juergen Gross <jgross@suse.com>
2019-03-06 14:42:49 +00:00
Ian Jackson f82c293384 Prep for 4.12-rc1: Change versions from -unstable to -rc
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
2019-01-16 16:13:21 +00:00
Andrew Cooper a2783e97fb docs: Remove Markdown from configure.ac and the build instructions
Now that all use of markdown as been replaced with pandoc, drop it from
configure.ac and from the docs/ Makefile.

Instead of just deleting the markdown reference from README, adjust the line
to mention the other optional packages required for documentation.

Drop markdown from travis, but leave it in the docker containers as they get
used for stable branches as well.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
2019-01-02 17:50:36 +00:00
Doug Goldstein c3f0dccc96 build: remove tboot make targets
The tboot targets are woefully out of date. These should really be
retired because setting up tboot is more complex than the build process
for it.

Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Wei Liu <wei.liu2@citrix.com>
Reviewed-by: Christopher Clark <christopher.clark6@baesystems.com>
2018-08-27 11:37:01 +02:00
Ian Jackson fe24641c8f README, Makefiles, Config.mk: Update for branching 4.11 vs 4.12-unstable
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
2018-06-25 15:14:29 +01:00
Ian Jackson 0d37f90d61 README, Xen/Makefile: Xen 4.11 is -RC now
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
2018-04-17 18:21:31 +01:00
Doug Goldstein 415ab9b871 README: require Python 2.4 or newer
Increase the minimum required Python to 2.4 or newer.

Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
2018-03-20 16:30:39 +00:00
Ian Jackson 1002f1a21b README, Makefiles, Config.mk: Update for branching 4.10 vs 4.11-unstable
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
2017-12-01 15:06:11 +00:00
Ian Jackson 24fb44e971 Config.mk, xen/Makefile: Update version to 4.10[.0]-rc
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
2017-10-16 15:24:44 +01:00
Ian Jackson a5aa07b588 Branching 4.9: Fix versions to be 4.10-unstable
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
2017-05-30 17:30:03 +01:00
Ian Jackson b3bbdc96e0 Branch Xen 4.9: Make staging be an unstable branch
Config.mk
  MINIOS_UPSTREAM_REVISION   } changed from tag to equivalent
  QEMU_TRADITIONAL_REVISION  }  specific commit hash
  QEMU_UPSTREAM_REVISION     now tracking master again

README, xen/Makefile
  Update version number

*/configure
  Reran autoconf; only change is version number

tools/Rules.mk, xen/Kconfig.debug
  Enable debug.
  Reverts 229ff3125b "Use non-debug build for Xen 4.9".

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
2017-05-30 16:30:58 +01:00
Ian Jackson 5644f357b9 Config.mk, etc.: Prepare 4.9.0-rc1
* Update Config.mk REVISION values to refer to relevant tags.
* Update README version number
* Update xen/Makefile version number

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
2017-04-12 15:45:39 +01:00