Patch series available in this git branch:
https://xenbits.xen.org/git-http/people/aperard/xen-unstable.git br.build-system-xen-v5
v5:
- few changes detailed in patch notes.
- 1 new patch
v4:
- some patch already applied.
- Have added patches from "xen/arm: Configure early printk via Kconfig" series.
- Some new patch to add documentation or fix issues, and patch to improve
compat header generation.
Other changes are detailed in patches.
v3:
- new patches that do some cleanup or fix issues
- have rework most patches, to have better commit message or change the coding
style, or fix issues that I've seen. There were some cases where CFLAGS were
missing.
See patch notes for details
- introduce if_changed*. That plenty of new patches on top of what we had in v2.
(those changes ignore CONFIG_LTO=y, I'll see about fixing that later)
(There is more to come in order to use fixdep from Linux, but that's not ready)
Hi,
I have work toward building Xen (the hypervisor) with Linux's build system,
Kbuild.
The main reason for that is to be able to have out-of-tree build. It's annoying
when a build fail because of the pvshim. Other benefit is a much faster
rebuild, and `make clean` doesn't take ages, and better dependencies to figure
out what needs to be rebuild.
So, we are not there yet, but the series already contain quite a few
improvement and cleanup. More patches are going to be added to the series.
Cheers,
Anthony PERARD (16):
build,xsm: Fix multiple call
xen/build: include include/config/auto.conf in main Makefile
xen/build: use new $(c_flags) and $(a_flags) instead of $(CFLAGS)
xen/build: have the root Makefile generates the CFLAGS
build: Introduce documentation for xen Makefiles
xen/build: introduce if_changed and if_changed_rule
xen/build: Start using if_changed
build: Introduce $(cpp_flags)
xen/build: use if_changed on built_in.o
xen/build: Use if_changed_rules with %.o:%.c targets
xen/build: factorise generation of the linker scripts
xen/build: Use if_changed for prelink*.o
xen,symbols: rework file symbols selection
build: use if_changed to build mm/*/guest_%.o
build,include: rework compat-build-source.py
build,include: rework compat-build-header.py
.gitignore | 1 +
docs/misc/xen-makefiles/makefiles.rst | 185 ++++++++++++++++++++
xen/Makefile | 212 ++++++++++++++++++++---
xen/Rules.mk | 235 ++++++++++++++++----------
xen/arch/arm/Makefile | 22 +--
xen/arch/arm/Rules.mk | 23 ---
xen/arch/arm/{Rules.mk => arch.mk} | 5 -
xen/arch/arm/efi/Makefile | 2 +-
xen/arch/x86/Makefile | 41 ++---
xen/arch/x86/Rules.mk | 91 +---------
xen/arch/x86/{Rules.mk => arch.mk} | 17 +-
xen/arch/x86/efi/Makefile | 9 +-
xen/arch/x86/mm/Makefile | 14 +-
xen/arch/x86/mm/hap/Makefile | 15 +-
xen/arch/x86/mm/shadow/Makefile | 14 +-
xen/common/libelf/Makefile | 14 +-
xen/common/libfdt/Makefile | 13 +-
xen/include/Makefile | 16 +-
xen/scripts/Kbuild.include | 107 ++++++++++++
xen/tools/compat-build-header.py | 52 +++++-
xen/tools/compat-build-source.py | 8 +-
xen/tools/symbols.c | 20 ++-
xen/xsm/flask/Makefile | 19 ++-
xen/xsm/flask/ss/Makefile | 2 +-
24 files changed, 809 insertions(+), 328 deletions(-)
create mode 100644 docs/misc/xen-makefiles/makefiles.rst
copy xen/arch/arm/{Rules.mk => arch.mk} (85%)
copy xen/arch/x86/{Rules.mk => arch.mk} (87%)
--
Anthony PERARD