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

Re: [Xen-devel] [PATCH for-4.7] xen/build: Fix build with Clang



>>> On 07.04.16 at 20:46, <andrew.cooper3@xxxxxxxxxx> wrote:
> The clang build already has many duplicate symbols for some reason I have yet
> to identify, e.g.
> 
>   Duplicate symbol 'asid.c#get_cpu_info' (ffff82d0801e6840 != 
> ffff82d0801c8190)
>   Duplicate symbol 'ats.c#__list_add' (ffff82d08015b900 != ffff82d0801546a0)
>   Duplicate symbol 'common.c#clear_bit' (ffff82d080213560 != ffff82d0801baf10)
>   Duplicate symbol 'common.c#constant_test_bit' (ffff82d080213550 != 
> ffff82d0801ba750)
>   Duplicate symbol 'common.c#cpumask_check' (ffff82d080218c50 != 
> ffff82d0801baf20)
>   Duplicate symbol 'common.c#cpumask_clear_cpu' (ffff82d080214990 != 
> ffff82d0801bae40)
>   Duplicate symbol 'common.c#get_cpu_info' (ffff82d080212210 != 
> ffff82d0801bad20)
> 
> The resulting binary does function.  Someone with more time can investigate
> making symbol handling work better with Clang

I'd guess that's because they don't inline functions as aggressively
as gcc does.

> --- a/xen/Rules.mk
> +++ b/xen/Rules.mk
> @@ -50,9 +50,15 @@ ALL_OBJS-$(CONFIG_X86)   += $(BASEDIR)/crypto/built_in.o
>  CFLAGS += -nostdinc -fno-builtin -fno-common
>  CFLAGS += -Werror -Wredundant-decls -Wno-pointer-arith
>  CFLAGS += -pipe -g -D__XEN__ -include $(BASEDIR)/include/xen/config.h
> -CFLAGS += -Wa,--strip-local-absolute
>  CFLAGS += '-D__OBJECT_FILE__="$@"'
>  
> +ifneq ($(clang),y)
> +# Clang doesn't understand this command line argument, and doesn't appear to
> +# have an suitable alternative.  The resulting compiled binary does function,
> +# but has an excessively large symbol table.
> +CFLAGS += -Wa,--strip-local-absolute
> +endif

Well, that's the brute force undo-it-altogether-for-clang approach
that I think Doug had also considered. You may have seen the
discussion (on irc iirc) - I'd really like to see the option still getting
passed to gas (for all the .S files) even when using clang. Would
that really be hard to arrange for?

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

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