From: Jan Beulich Date: Wed, 18 Jan 2017 08:49:55 +0000 (+0100) Subject: x86/boot: fix build with certain older gcc versions X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=c581eadec6cdaebb139993390bb9d1e22b2f77d9;p=people%2Froyger%2Fxen.git x86/boot: fix build with certain older gcc versions Despite all attempts so far (ending in commit fecf584294 ["Config.mk: fix comment for debug option"] adjusting the respective comment), Config.mk's debug= setting still affects the hypervisor build: CFLAGS gets -g added there. xen/arch/x86/boot/build32.mk includes that file, and hence inherits the setting too. Some gcc versions take -g to create an .eh_frame section despite -fno-asynchronous-unwind-tables (which instead one would expect to produce .debug_frame). In turn, commit 93c0c0287a ("x86/boot: create *.lnk files with linker script") was - in my understanding - supposed to make sure .text is first, but apparently it did also not really achieve that effect: Both reloc.lnk and reloc.bin in the case here ended up with .eh_frame first, which obviously rendered the whole final binary unusable. Explicitly suppress generation of any kind of debug info when building reloc.o. Signed-off-by: Jan Beulich Reviewed-by: Andrew Cooper master commit: 620b3c7eee78e90167f591877177c922ae619b92 master date: 2016-12-16 14:37:35 +0100 --- diff --git a/xen/arch/x86/boot/build32.mk b/xen/arch/x86/boot/build32.mk index 39e6453ccb..272d942a1b 100644 --- a/xen/arch/x86/boot/build32.mk +++ b/xen/arch/x86/boot/build32.mk @@ -4,7 +4,7 @@ include $(XEN_ROOT)/Config.mk $(call cc-options-add,CFLAGS,CC,$(EMBEDDED_EXTRA_CFLAGS)) -CFLAGS += -Werror -fno-asynchronous-unwind-tables -fno-builtin -msoft-float +CFLAGS += -Werror -fno-asynchronous-unwind-tables -fno-builtin -g0 -msoft-float CFLAGS := $(filter-out -flto,$(CFLAGS)) # NB. awk invocation is a portable alternative to 'head -n -1'