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

Re: [Xen-devel] How to compile Xen 4.12 with Clang on Linux?



On Tue, Jun 25, 2019 at 01:09:22AM +0000, Johnson, Ethan wrote:
> On 6/20/19 7:01 PM, Andrew Cooper wrote:
> > Xen itself doesn't use autoconf, and needs a bit of extra help getting
> > its options in order.  There is an extra clang=y variable which you need
> > to pass.
> >
> > xen.git$ make -C xen/ CC=clang-7 clang=y
> 
> Thanks! That seems to have worked.
> 
> Now I've got a new issue: it looks like Xen is trying to use an 
> optimization flag that Clang doesn't like:
> 
> ----------
> [ 16%] Building C object crypto/CMakeFiles/tpm_crypto.dir/hmac.o
> cd 
> /home/ejohns48/Desktop/xen-4.12.0/stubdom/tpm_emulator-x86_64/build/crypto 
> && /usr/bin/clang-7  -I/opt/local/include 
> -I/home/ejohns48/Desktop/xen-4.12.0/stubdom/tpm_emulator-x86_64 
> -I/home/ejohns48/Desktop/xen-4.12.0/stubdom/tpm_emulator-x86_64/build 
> -std=c99 -DTPM_NO_EXTERN -isystem 
> /home/ejohns48/Desktop/xen-4.12.0/stubdom/../extras/mini-os/include 
> -D__MINIOS__ -DHAVE_LIBC -isystem 
> /home/ejohns48/Desktop/xen-4.12.0/stubdom/../extras/mini-os/include/posix 
> -isystem 
> /home/ejohns48/Desktop/xen-4.12.0/stubdom/../tools/xenstore/include 
> -isystem 
> /home/ejohns48/Desktop/xen-4.12.0/stubdom/../extras/mini-os/include/x86 
> -isystem 
> /home/ejohns48/Desktop/xen-4.12.0/stubdom/../extras/mini-os/include/x86/x86_64
>  
> -U __linux__ -U __FreeBSD__ -U __sun__ -nostdinc -isystem 
> /home/ejohns48/Desktop/xen-4.12.0/stubdom/../extras/mini-os/include/posix 
> -isystem 
> /home/ejohns48/Desktop/xen-4.12.0/stubdom/cross-root-x86_64/x86_64-xen-elf/include
>  
> -isystem /usr/lib/gcc/x86_64-linux-gnu/7/include -isystem 
> /home/ejohns48/Desktop/xen-4.12.0/stubdom/lwip-x86_64/src/include 
> -isystem 
> /home/ejohns48/Desktop/xen-4.12.0/stubdom/lwip-x86_64/src/include/ipv4 
> -I/home/ejohns48/Desktop/xen-4.12.0/stubdom/include 
> -I/home/ejohns48/Desktop/xen-4.12.0/stubdom/../xen/include -mno-red-zone 
> -O1 -fno-omit-frame-pointer -O1 -fno-omit-frame-pointer  -m64 
> -mno-red-zone -fno-reorder-blocks -fno-asynchronous-unwind-tables -m64 
> -DBUILD_ID -fno-strict-aliasing -std=gnu99 -Wall -Wstrict-prototypes 
> -Wdeclaration-after-statement -Wno-unused-local-typedefs   
> -fno-stack-protector -fno-exceptions -Wno-declaration-after-statement   
> -Wall -Werror -Wextra -Wno-unused-parameter -Wpointer-arith -Wcast-align 
> -Wwrite-strings -o CMakeFiles/tpm_crypto.dir/hmac.o   -c 
> /home/ejohns48/Desktop/xen-4.12.0/stubdom/tpm_emulator-x86_64/crypto/hmac.c
> clang: error: optimization flag '-fno-reorder-blocks' is not supported 
> [-Werror,-Wignored-optimization-argument]
> ----------
> 
> I'm seeing this same error on other translation units as well when I run 
> "make" with multiple threads (-j24).
> 
> Is this another thing I can fix with a flag or do I need to dig deeper?

I'm not sure clang/llvm is capable of building stubdomains. The
current gitlab CI loop that tests clang/llvm has the following
snippet:

# newlib cannot be built with clang so we cannot build stubdoms
cfgargs+=("--disable-stubdom")

Which disables the stubdomain build with clang. If you need
stubdomains working with clang/llvm I'm afraid you will have to do
some digging, or else you can just disable them from configure.

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®.