Commit Graph
552 Commits
Author SHA1 Message Date
Andrew Cooper 415f7d9404 Revert "Revert "build: Change remaining xenbits.xen.org link to HTTPS""
This reverts commit b5cc3c25a2, reinstating the
original change as per e1d7508444.

We think the OSSTest failure has been addressed now.

Link: https://lore.kernel.org/xen-devel/20d41dd0-19d1-47fb-92ab-4de458ddd56f@perard/
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
2023-04-04 17:35:52 +01:00
Jan Beulich d6e0b4c41a bump default SeaBIOS version to 1.16.2
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Julien Grall <jgrall@amazon.com>
2023-03-31 08:13:30 +02:00
Andrew Cooper b5cc3c25a2 Revert "build: Change remaining xenbits.xen.org link to HTTPS"
This reverts commit e1d7508444.

After spending ages sorting out Gitlab CI, it appears that OSSTest too has an
out-of-date Lets Encrypt cert.  Revert again in the short term while we fix
this up.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
2023-03-24 20:34:53 +00:00
Demi Marie Obenour e1d7508444 build: Change remaining xenbits.xen.org link to 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 for all xenbits.xen.org
URLs.  All altered links have been tested and 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
Demi Marie Obenour eb23eef476 build: Use HTTPS for all xenbits.xen.org Git repos
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 for all xenbits git
repositories.  It was generated with the following shell script:

    git ls-files -z |
    xargs -0 -- sed -Ei -- 's@(git://xenbits\.xen\.org|http://xenbits\.xen\.org/git-http)/@https://xenbits.xen.org/git-http/@g'

All altered links have been tested and 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:13 +00:00
Jan Beulich 1c2cb0b82a half-revert "change assorted xenbits.xen.org links to HTTPS"
This reverts the build system relevant half of commit
a4557f515f, as gitlab CI can't fully cope
with the change just yet.

Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
2023-02-28 16:05:48 +01:00
Demi Marie Obenour a4557f515f change assorted xenbits.xen.org links to HTTPS
Also switch to xenbits.xenproject.org at this occasion.

Signed-off-by: Demi Marie Obenour <demi@invisiblethingslab.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
2023-02-28 14:52:14 +01:00
Jan Beulich 83c822a13f bump default SeaBIOS version to 1.16.1
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
2022-12-05 13:42:47 +01:00
Julien Grall 7190edeaaf Revert "Config.mk pin QEMU_UPSTREAM_REVISION (prep for Xen 4.17 RC1)"
The branch is unstable again.

This reverts commit b4ddd34d3a.

Signed-off-by: Julien Grall <jgrall@amazon.com>
2022-12-01 13:56:36 +00:00
Julien Grall b4ddd34d3a Config.mk pin QEMU_UPSTREAM_REVISION (prep for Xen 4.17 RC1)
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 13a7c0074a 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")
2022-09-27 15:40:42 -07:00
Jan Beulich ecd6b97599 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>
2022-09-08 09:25:26 +02:00
Juergen Gross 980bfb1ac9 Config.mk: use newest Mini-OS commit
Switch to use the newest Mini-OS commit in order to get the recent
fixes.

Signed-off-by: Juergen Gross <jgross@suse.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
2022-07-08 09:42:27 +02:00
Jan Beulich 944e389daa bump default SeaBIOS version to 1.16.0
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Julien Grall <jgrall@amazon.com>
2022-05-06 14:46:52 +02:00
Roger Pau Monne e270af9428 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>
2022-04-04 12:30:07 +01:00
Andrew Cooper 3667f7f8f7 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.

However, the default -fcf-protection=branch places an endbr{32,64} on every
function which far more than necessary, and reduces the quantity of protection
afforded.  Therefore, we use manual placement using the cf_check attribute.

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>
2022-02-23 15:33:42 +00:00
Wei Liu 9b7cdb83fc Config.mk: update seabios to 1.15.0
Signed-off-by: Wei Liu <wl@xen.org>
Acked-by: Jan Beulich <jbeulich@suse.com>
2022-01-19 22:25:21 +00:00
Juergen Gross fa52b153c5 config: use more recent mini-os commit
In order to be able to use the recent Mini-OS features switch to the
most recent commit.

Signed-off-by: Juergen Gross <jgross@suse.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
2022-01-19 09:37:55 +00:00
Juergen Gross aa61568ac6 config: use more recent mini-os commit
In order to be able to use the recent Mini-OS features switch to the
most recent commit.

Signed-off-by: Juergen Gross <jgross@suse.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
2022-01-18 14:58:28 +00:00
Anthony PERARD 021cd1c4b4 tools: Use config.h from autoconf instead of "buildmakevars2header"
This avoid the need to generate the _paths.h header when the
information is from autoconf anyway.

They are no more users of the "buildmakevars2header" macro, so it can
be removed from "Config.mk".

Also removed the extra "-f" flag where "$(RM)" is used (xl/Makefile).

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
2021-12-16 20:27:12 +00:00
Ian Jackson 4fe6e73a8c Revert "Config.mk: pin QEMU_UPSTREAM_REVISION (prep for Xen 4.16 RC1)"
This branch is unstable again now.

This reverts commit c9ce6afbf2.
2021-11-23 16:51:47 +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