[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v3] Xen: Update compiler checks
We have checks in both xen/compiler.h, and Config.mk. Both are incomplete. The check in Config.mk sees $(CC) in system and cross-compiler form, so cannot express anything more than the global baseline. Change it to simply 5.1. In xen/compiler.h, rewrite the expression for clarity/brevity. Include a GCC 12.2 check for RISCV, and include a Clang 11 baseline check. Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> --- CC: Anthony PERARD <anthony.perard@xxxxxxxxxx> CC: Michal Orzel <michal.orzel@xxxxxxx> CC: Jan Beulich <jbeulich@xxxxxxxx> CC: Julien Grall <julien@xxxxxxx> CC: Roger Pau Monné <roger.pau@xxxxxxxxxx> CC: Stefano Stabellini <sstabellini@xxxxxxxxxx> CC: Oleksii Kurochko <oleksii.kurochko@xxxxxxxxx> v3: * Reinstate the xen/compiler.h block * Restrict Config.mk to the baseline only v2: * Change to altering Config.mk https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/1738778376 with the CI changes reverted, so as to expect failures for CentOS 7 and earlier Ubuntu Clangs. The $(eval $(check-y)) is badly positioned: xen.git/xen$ make *** FATAL BUILD ERROR: Xen requires at least GCC 0x150100 *** FATAL BUILD ERROR: Xen requires at least GCC 0x150100 *** FATAL BUILD ERROR: Xen requires at least GCC 0x150100 *** FATAL BUILD ERROR: Xen requires at least GCC 0x150100 *** FATAL BUILD ERROR: Xen requires at least GCC 0x150100 *** FATAL BUILD ERROR: Xen requires at least GCC 0x150100 *** FATAL BUILD ERROR: Xen requires at least GCC 0x150100 *** FATAL BUILD ERROR: Xen requires at least GCC 0x150100 *** FATAL BUILD ERROR: Xen requires at least GCC 0x150100 *** FATAL BUILD ERROR: Xen requires at least GCC 0x150100 *** FATAL BUILD ERROR: Xen requires at least GCC 0x150100 *** FATAL BUILD ERROR: Xen requires at least GCC 0x150100 *** FATAL BUILD ERROR: Xen requires at least GCC 0x150100 *** FATAL BUILD ERROR: Xen requires at least GCC 0x150100 *** FATAL BUILD ERROR: Xen requires at least GCC 0x150100 HOSTCC tools/fixdep *** FATAL BUILD ERROR: Xen requires at least GCC 0x150100 make[1]: *** [scripts/Makefile.host:108: tools/fixdep] Error 1 HOSTCC tools/symbols *** FATAL BUILD ERROR: Xen requires at least GCC 0x150100 make[1]: *** [scripts/Makefile.host:108: tools/symbols] Error 1 make: *** [Makefile:610: xen] Error 2 It is involved every time Config.mk is included, rather than once per `make` invocation. --- Config.mk | 4 ++-- xen/include/xen/compiler.h | 26 ++++++++++++++------------ 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/Config.mk b/Config.mk index 8a73f3da62b4..8a60d4a55abf 100644 --- a/Config.mk +++ b/Config.mk @@ -125,8 +125,8 @@ define cc-ver-check-closure endif endef -# Require GCC v4.1+ -check-$(gcc) = $(call cc-ver-check,CC,0x040100,"Xen requires at least gcc-4.1") +# Require GCC v5.1 as the project global baseline +check-$(gcc) = $(call cc-ver-check,CC,0x050100,"Xen requires at least GCC 5.1") $(eval $(check-y)) ld-ver-build-id = $(shell $(1) --build-id 2>&1 | \ diff --git a/xen/include/xen/compiler.h b/xen/include/xen/compiler.h index 636a85bc417d..38b8fa3d386d 100644 --- a/xen/include/xen/compiler.h +++ b/xen/include/xen/compiler.h @@ -1,19 +1,21 @@ #ifndef __LINUX_COMPILER_H #define __LINUX_COMPILER_H -#if !defined(__GNUC__) || (__GNUC__ < 4) -#error Sorry, your compiler is too old/not recognized. -#elif CONFIG_CC_IS_GCC -# if defined(CONFIG_ARM_32) && CONFIG_GCC_VERSION < 40900 -# error Sorry, your version of GCC is too old - please use 4.9 or newer. -# elif defined(CONFIG_ARM_64) && CONFIG_GCC_VERSION < 50100 -/* - * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63293 - * https://lore.kernel.org/r/20210107111841.GN1551@xxxxxxxxxxxxxxxxxxxxx - */ -# error Sorry, your version of GCC is too old - please use 5.1 or newer. +#if CONFIG_CC_IS_GCC + +# if defined(CONFIG_RISCV) && CONFIG_GCC_VERSION < 120200 +# error Sorry, please use GCC >= 12.2 +# elif CONFIG_GCC_VERSION < 50100 +# error Sorry, please use GCC >= 5.1 # endif -#endif + +#elif CONFIG_CC_IS_CLANG + +# if CONFIG_CLANG_VERSION < 110000 +# error Sorry, please use Clang >= 11 +# endif + +#endif /* Compiler checks. */ #ifdef CONFIG_CC_HAS_VISIBILITY_ATTRIBUTE /* Results in more efficient PIC code (no indirections through GOT or PLT). */ -- 2.39.5
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |