[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] Status of 4.13



On Mon, Nov 25, 2019 at 05:34:15PM +0000, Andrew Cooper wrote:
> On 25/11/2019 17:27, Roger Pau Monné wrote:
> > On Mon, Nov 25, 2019 at 05:07:04PM +0000, Wei Liu wrote:
> >> On Mon, Nov 25, 2019 at 04:59:31PM +0100, Roger Pau Monné wrote:
> >> [...]
> >>> Which I think it's expected, we already knew clang had a lot of
> >>> duplicate symbols. The only way I know to workaround this ATM is to
> >>> use `gmake xen clang=y CONFIG_ENFORCE_UNIQUE_SYMBOLS=n`. It's on my
> >>> pile of stuff to look into, but I'm not sure when I will get to it.
> >> In that case we should make Gitlab CI use the new configuration option.
> > IMO the build should work out of the box, so we should disable
> > CONFIG_ENFORCE_UNIQUE_SYMBOLS automatically if clang is detected.
> 
> Kconfig in 4.13 isn't in a position to know this.  (It will be in 4.14
> with Anthony's refresh committed).

We already have Kconfig options that depend on toolchain features,
livepatch itself will be enabled if build id is supported by the
linker, why not use something like:

diff --git a/Config.mk b/Config.mk
index d8f90d75b3..009abda225 100644
--- a/Config.mk
+++ b/Config.mk
@@ -157,6 +157,8 @@ ifndef XEN_HAS_CHECKPOLICY
     export XEN_HAS_CHECKPOLICY
 endif
 
+export XEN_BUILD_WITH_CLANG = $(clang)
+
 # as-insn: Check whether assembler supports an instruction.
 # Usage: cflags-y += $(call as-insn,CC FLAGS,"insn",option-yes,option-no)
 as-insn = $(if $(shell echo 'void _(void) { asm volatile ( $(2) ); }' \
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index f754741972..097996fc6c 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -80,6 +80,10 @@ config HAS_CHECKPOLICY
        string
        option env="XEN_HAS_CHECKPOLICY"
 
+config BUILD_WITH_CLANG
+       string
+       option env="XEN_BUILD_WITH_CLANG"
+
 menu "Speculative hardening"
 
 config SPECULATIVE_HARDEN_ARRAY
@@ -350,7 +354,7 @@ config CRYPTO
 config LIVEPATCH
        bool "Live patching support"
        default X86
-       depends on HAS_BUILD_ID = "y"
+       depends on HAS_BUILD_ID = "y" && BUILD_WITH_CLANG != "y"
        ---help---
          Allows a running Xen hypervisor to be dynamically patched using
          binary patches without rebooting. This is primarily used to binarily

This WFM with FreeBSD and clang.

Thanks, Roger.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.