Commit Graph
543 Commits
Author SHA1 Message Date
Andrew Cooper b9ad687bfd Update Xen to version 4.16.5
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
2023-08-08 16:02:54 +01:00
Jan Beulich 78f53920f4 update qemuu tag 2023-07-18 10:26:07 +02:00
Jan Beulich 7251cea957 update Xen version to 4.16.4 2023-04-27 14:54:26 +02:00
Jan Beulich 2a4d327387 bump default SeaBIOS version to 1.16.0
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Julien Grall <jgrall@amazon.com>
(cherry picked from commit 944e389daa)
2023-04-12 09:00:19 +01:00
Jan Beulich 556c2e817c update Xen version to 4.16.3 2022-12-19 09:08:32 +01:00
Jan Beulich 2b694dd293 Config.mk: correct PIE-related option(s) in EMBEDDED_EXTRA_CFLAGS
I haven't been able to find evidence of "-nopie" ever having been a
supported compiler option. The correct spelling is "-no-pie".
Furthermore like "-pie" this is an option which is solely passed to the
linker. The compiler only recognizes "-fpie" / "-fPIE" / "-fno-pie", and
it doesn't infer these options from "-pie" / "-no-pie".

Add the compiler recognized form, but for the possible case of the
variable also being used somewhere for linking keep the linker option as
well (with corrected spelling).

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Julien Grall <jgrall@amazon.com>

Build: Drop -no-pie from EMBEDDED_EXTRA_CFLAGS

This breaks all Clang builds, as demostrated by Gitlab CI.

Contrary to the description in ecd6b97599, -no-pie is not even an option
passed to the linker.  GCC's actual behaviour is to inhibit the passing of
-pie to the linker, as well as selecting different cr0 artefacts to be linked.

EMBEDDED_EXTRA_CFLAGS is not used for $(CC)-doing-linking, and not liable to
gain such a usecase.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
Tested-by: Stefano Stabellini <sstabellini@kernel.org>
Fixes: ecd6b97599 ("Config.mk: correct PIE-related option(s) in EMBEDDED_EXTRA_CFLAGS")
master commit: ecd6b97599
master date: 2022-09-08 09:25:26 +0200
master commit: 13a7c0074a
master date: 2022-09-27 15:40:42 -0700
2022-10-11 15:00:33 +02:00
Jan Beulich cea5ed49bb update Xen version to 4.16.2 2022-08-18 13:47:46 +02:00
Jan Beulich f265444922 update Xen version to 4.16.1 2022-04-12 14:21:23 +02:00
Roger Pau Monné 2c026fe1f1 tools/firmware: do not add a .note.gnu.property section
Prevent the assembler from creating a .note.gnu.property section on
the output objects, as it's not useful for firmware related binaries,
and breaks the resulting rombios image.

This requires modifying the cc-option Makefile macro so it can test
assembler options (by replacing the usage of the -S flag with -c) and
also stripping the -Wa, prefix if present when checking for the test
output.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Acked-by: Anthony PERARD <anthony.perard@citrix.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
master commit: e270af9428
master date: 2022-04-04 12:30:07 +0100
2022-04-06 10:20:44 +02:00
Andrew Cooper 917b6ef91b x86: Introduce support for CET-IBT
CET Indirect Branch Tracking is a hardware feature designed to provide
forward-edge control flow integrity, protecting against jump/call oriented
programming.

IBT requires the placement of endbr{32,64} instructions at the target of every
indirect call/jmp, and every entrypoint.

It is necessary to check for both compiler and assembler support, as the
notrack prefix can be emitted in certain cases.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
(cherry picked from commit 3667f7f8f7)

Note: For backports to 4.14 thru 4.16, we are deliberately not using
      -mmanual-endbr as done in staging, as an intermediate approach which
      is not too invasive to backport.

x86/cet: Force -fno-jump-tables for CET-IBT

Both GCC and Clang have a (mis)feature where, even with
-fcf-protection=branch, jump tables are created using a notrack jump rather
than using endbr's in each case statement.

This is incompatible with the safety properties we want in Xen, and enforced
by not setting MSR_S_CET.NOTRACK_EN.  The consequence is a fatal #CP[endbr].

-fno-jump-tables is generally active as a side effect of
CONFIG_INDIRECT_THUNK (retpoline), but as of c/s 95d9ab4614 ("x86/Kconfig:
introduce option to select retpoline usage"), we explicitly support turning
retpoline off.

Fixes: 3667f7f8f7 ("x86: Introduce support for CET-IBT")
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
(cherry picked from commit 9d4a44380d)
2022-03-25 17:06:38 +00:00
Ian Jackson c9b5e2fb62 Config.mk: Bump tags to 4.16.0 final
No actual change to the code since RC4.

Signed-off-by: Ian Jackson <iwj@xenproject.org>
2021-11-30 11:42:00 +00:00
Ian Jackson c6fbb058f6 Config.mk: switch to named tags (for stable branch)
Signed-off-by: Ian Jackson <iwj@xenproject.org>
2021-11-23 16:43:49 +00:00
Ian Jackson c9ce6afbf2 Config.mk: pin QEMU_UPSTREAM_REVISION (prep for Xen 4.16 RC1)
Signed-off-by: Ian Jackson <iwj@xenproject.org>
2021-11-01 12:33:54 +00:00
Anthony PERARD 0b000a2ce8 xen: rework checkpolicy detection when using "randconfig"
This patch allows to easily add more override which depends on the
environment.

Also, move the check out of Config.mk and into xen/ build system.
Nothing in tools/ is using that information as it's done by
./configure.

We named the new file ".allconfig.tmp" as ".*.tmp" are already ignored
via .gitignore.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
2021-09-29 11:58:15 +02:00
Ian Jackson 890ceb9453 Merge remote-tracking branch 'origin/staging' into staging 2021-09-28 12:51:00 +01:00
Anthony PERARD 8d73459193 Config.mk: update OVMF to edk2-stable202108
Update to the latest stable tag.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
2021-09-28 12:47:50 +01:00
Juergen Gross afacb0a98f Config: use Mini-OS commit 9f09744aa3e5982 for xen-unstable
Switch the used Mini-OS commit to 9f09744aa3e5982 in xen-unstable.

[ 9f09744aa3e5982 is current mini-os.git#master -iwj. ]

Signed-off-by: Juergen Gross <jgross@suse.com>
Acked-by: Ian Jackson <iwj@xenproject.org>
2021-09-27 15:34:56 +01:00
Anthony PERARD 81f2914202 tools/firmware/ovmf: Use OvmfXen platform file if exist and update OVMF
A platform introduced in EDK II named OvmfXen is now the one to use for
Xen instead of OvmfX64. It comes with PVH support.

Also, the Xen support in OvmfX64 is deprecated,
    "deprecation notice: *dynamic* multi-VMM (QEMU vs. Xen) support in OvmfPkg"
    https://edk2.groups.io/g/devel/message/75498
and has been removed upstream.

We need to also update to a newer version of OVMF as OvmfXen in the
release "edk2-stable202105" doesn't work well with Xen, so we need the
fix b37cfdd28071 ("OvmfPkg/XenPlatformPei: Relocate shared_info page
mapping").

Also, don't set anymore the number of thread for parallel build when
building the newer platform, OvmfPkg/build.sh is now doing parallel
build by default.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Acked-by: Ian Jackson <iwj@xenproject.org>
2021-07-27 14:26:57 +01:00
Anthony PERARD 07d6dd51a5 Config.mk: re-pin OVMF changeset and unpin qemu-xen
qemu-xen tree have a osstest gate and doesn't need to be pinned.

On the other hand, OVMF's xen repository doesn't have a gate and needs
to be pinned. The "master" branch correspond now to the tag
"edk2-stable202105", so pin to that commit.

Fixes: a04509d34d ("Branching: Update version files etc. for newly unstable")
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Acked-by: Ian Jackson <iwj@xenproject.org>
2021-07-02 14:59:41 +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
Ian Jackson 491ef860a7 Config.mk: pin to fixed versions for 4.15-rc
Signed-off-by: Ian Jackson <iwj@xenproject.org>
2021-03-01 14:11:43 +00:00
Jan Beulich 10bb8aa0d5 build: remove more absolute paths from dependency tracking files
d6b12add90 ("DEPS handling: Remove absolute paths from references to
cwd") took care of massaging the dependencies of the output file, but
for our passing of -MP to the compiler to take effect the same needs to
be done on the "phony" rules that the compiler emits.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Ian Jackson <iwj@xenproject.org>
Release-Acked-by: Ian Jackson <iwj@xenproject.org>
2021-02-24 12:47:34 +01:00
Juergen Gross 71039ed743 minios: use more recent commit for building xen unstable
Commit 82c3d15c90 ("minios: Revert recent change and revert to
working minios") switched the used commit for the build of Xen unstable
from master to a rather old commit (the one used for Xen 4.13 instead
of the last one without a known problem).

Switch to Mini-OS commit 051b87bb9c196 instead, which doesn't contain
the problematic modification being reason for switching away from
master.

Signed-off-by: Juergen Gross <jgross@suse.com>
Acked-by: Wei Liu <wl@xen.org>
2020-09-07 14:14:40 +00:00
Ian Jackson 82c3d15c90 minios: Revert recent change and revert to working minios
Currently, xen.git#staging does not build in many environments because
of issues with minios master.  This regression was introduced in an
uncontrolled manner by an update to mini-os.git#master.

This is because in e013e85143 "config: use mini-os master for
unstable" we switched to tracking minios master in an uncontrolled
manner.  At the time we thought it was unlikely that minios changes
would break the Xen build.  This turns out to have been overly
optimistic.

Xen currently uses unstable internal interfaces of minios.  Until this
can be sorted out, internal changes to minios can require lockstep
changes in Xen.

All this means that "config: use mini-os master for unstable" was
wrong.  We should undo it.  Instead, we go back to the previous
situation: xen.git names a specific minios commit.

This scheme is the model used for qemu-xen-traditional.

That nailed commit must be updated manually, to have xen.git pick up
changes from minios.  If the minios changes require changes in xen.git
too, to avoid breaking the Xen build, they can be made freely in
minios without adverse consequences.  When the minios commitid is
updated in xen.git, the corresponding changes to the actual source
files in xen.git should be bundled together.

For example, when minios is fixed, 8d990807ec "stubdom/grub: update
init_netfront() call for mini-os" will need to be reapplied, folded
into the same commit as updates MINIOS_UPSTREAM_REVISION.  For now
that commit must be reverted as we are going back to a previous
version of minios.

This reverts commit 8d990807ec.
This reverts commit e013e85143.

CC: Jan Beulich <jbeulich@suse.com>
CC: Costin Lupu <costin.lupu@cs.pub.ro>
CC: Wei Liu <wl@xen.org>
CC: Samuel Thibault <samuel.thibault@ens-lyon.org>
Signed-off-by: Ian Jackson <iwj@xenproject.org>
2020-09-04 16:50:55 +01:00
Ian Jackson 4d5b2099f1 QEMU_TRADITIONAL_REVISION update
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
2020-08-18 16:00:10 +01:00
Wei Liu f0f2344d3c Config.mk: update OVMF changeset
Signed-off-by: Wei Liu <wl@xen.org>
2020-08-14 20:21:25 +00:00
Wei Liu 47b0bf14c0 Config.mk: update seabios to 1.14.0
Signed-off-by: Wei Liu <wl@xen.org>
2020-08-12 09:26:29 +00:00
Ian Jackson 165f3afbfc Config.mk: Unnail versions (for unstable branch)
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
2020-07-13 14:50:33 +01:00
Anthony PERARD 158912a532 Config: Update QEMU
Backport 2 commits to fix building QEMU without PCI passthrough
support.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Acked-by: Wei Liu <wl@xen.org>
Release-acked-by: Paul Durrant <paul@xen.org>
2020-07-06 08:38:45 +00:00
Ian Jackson 2e8f29e10a Config.mk: Nail QEMU_UPSTREAM_REVISION MINIOS_UPSTREAM_REVISION
We freeze these during release prep, rather than tracking whatever
osstest passed.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
2020-06-08 15:17:36 +01:00
Andrew Cooper 3a218961b1 x86/build: Unilaterally disable -fcf-protection
Xen doesn't support CET-IBT yet.  At a minimum, logic is required to enable it
for supervisor use, but the livepatch functionality needs to learn not to
overwrite ENDBR64 instructions.

Furthermore, Ubuntu enables -fcf-protection by default, along with a buggy
version of GCC-9 which objects to it in combination with
-mindirect-branch=thunk-extern (Fixed in GCC 10, 9.4).

Various objects (Xen boot path, Rombios 32 stubs) require .text to be at the
beginning of the object.  These paths explode when .note.gnu.properties gets
put ahead of .text and we end up executing the notes data.

Disable -fcf-protection for all embedded objects.

Reported-by: Jason Andryuk <jandryuk@gmail.com>
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Jason Andryuk <jandryuk@gmail.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
2020-05-13 20:33:42 +01:00
Andrew Cooper 1a47731115 x86/build: move -fno-asynchronous-unwind-tables into EMBEDDED_EXTRA_CFLAGS
Users of EMBEDDED_EXTRA_CFLAGS already use -fno-asynchronous-unwind-tables, or
ought to.  This shrinks the size of the rombios 32bit stubs in guest memory.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
2020-05-13 20:33:42 +01:00
Ian Jackson 3acfd35b61 Update QEMU_TRADITIONAL_REVISION
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
2020-04-24 15:49:23 +01:00
Juergen Gross e013e85143 config: use mini-os master for unstable
We haven't used mini-os master for about 2 years now due to a stubdom
test failing [1]. Booting a guest with mini-os master used for building
stubdom didn't reveal any problem, so use master for unstable in order
to let OSStest find any problems not showing up in the local test.

[1]: https://lists.xen.org/archives/html/minios-devel/2018-04/msg00015.html

Signed-off-by: Juergen Gross <jgross@suse.com>
Acked-by: Wei Liu <wl@xen.org>
2020-04-07 21:05:54 +01:00
Anthony PERARD 33c4cc8b95 build: move as-option-add to xen/
Only xen/ uses as-option-add and as-insn, so there aren't needed in
Config.mk.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
2020-03-06 10:16:24 +01:00
Anthony PERARD 4c91ad721c xen: Import cc-ifversion from Kbuild
This is in preparation of importing Kbuild to build Xen. We won't be
able to include Config.mk so we will need a replacement for the macro
`cc-ifversion'.

This patch imports parts of "scripts/Kbuild.include" from Linux v5.4,
the macro cc-ifversion. It makes use of CONFIG_GCC_VERSION that
Kconfig now provides.

Since they are no other use of Xen's `cc-ifversion' macro, we can
remove it.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
2020-01-30 11:54:33 +00:00
Anthony PERARD 9239a90ecd Config.mk: Remove stray comment
This comment isn't about CONFIG_TESTS, but about SEABIOS_DIR that has
been removed.

Originally, the comment was added by 5f82d0858d ("tools: support
SeaBIOS. Use by default when upstream qemu is configured."), then
later the SEABIOS_DIR was removed by 14ee3c05f3 ("Clone and build
Seabios by default") but that comment about the pain was left behind.
The commit that made CONFIG_TESTS painful was 85896a7c4d ("build:
add autoconf to replace custom checks in tools/check").

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
2019-12-13 16:30:34 +00:00
Anthony PERARD 27d3ea41e6 Config.mk: Remove unused setvar_dir macro
And remove all mention of it in docs. It hasn't been used since
9ead9afcb9 ("Add configure --with-sysconfig-leaf-dir=SUBDIR to set
CONFIG_LEAF_DIR").

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
2019-12-13 16:30:34 +00:00
Wei Liu 0b65f0a428 Config.mk: update seabios to 1.13.0
Signed-off-by: Wei Liu <wl@xen.org>
2019-12-11 12:02:26 +00:00
Jan Beulich d0d72e60f5 x86: fix clang .macro retention check
There were two problems here: The first closing parentheses got parsed
by make to end the $(call invocation, and the escaping of the quotes
wasn't right either, as there's nowhere they would get un-escaped.

Furthermore there appears to be a puzzling problem with \n getting
expanded to an actual newline too early in some environments. Convert
these to semicolons at the same time.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Tested-by: Roger Pau Monné <roger.pau@citrix.com> [On FreeBSD and Debian 9.5]
Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
2019-11-29 17:10:00 +01:00
Ian Jackson 2d55b2985f Config.mk: Update other tree revisions for Xen 4.14-unstable
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
2019-11-29 14:47:07 +00:00
Ian Jackson a148c0bb01 Prep for 4.13.0-rc1: Pin QEMU_* and MINIOS to tags
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
2019-10-14 11:30:52 +01:00
Anthony PERARD 6fb98a0bd1 Config.mk: update OVMF to edk2-stable201905
Update to the latest stable tag.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Acked-by: Wei Liu <wl@xen.org>
2019-07-02 13:27:02 +02:00
Wei Liu f67e6e904c Config.mk: update seabios to 1.12.1
Signed-off-by: Wei Liu <wei.liu2@citrix.com>
2019-03-14 15:00:52 +00:00
Ian Jackson ef15ca08a8 Branch for 4.12: Switch unstable back from specific 4.12 tags
Use master or specific git commits.  The only semantic change is to
pick up qemu-xen master again.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
2019-03-11 14:49:00 +00:00
Ian Jackson f8db97bc60 Prep for 4.12-rc1: Change external trees to refer to rc1 tags
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
2019-01-16 16:13:49 +00:00
Wei Liu e9c4574d81 Config.mk: update seabios
This new release contains a fix for building legacy acpi tables with
newer iasl, which we want.

Signed-off-by: Wei Liu <wei.liu2@citrix.com>
2018-11-19 10:03:54 +00:00
Ian Jackson be240aabb1 QEMU_TAG update 2018-10-24 16:18:37 +01:00
Ian Jackson a923919797 QEMU_TAG update 2018-08-23 15:10:11 +01:00
Anthony PERARD f776264532 Config.mk: update OVMF changeset
Simply catching up with upstream.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Acked-by: Wei Liu <wei.liu2@citrix.com>
2018-07-25 15:50:38 +01:00