From: Riku Voipio <riku.voipio@xxxxxxxxxx> Latest Debian and Ubuntu GCC default to PIE code. Disable PIE for bios and pre_init. Since the flag -no-pie is not available on older GCC's, make use of flag only if the option is available. Signed-off-by: Riku Voipio <riku.voipio@xxxxxxxxxx> --- see: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=837545 --- Makefile | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 1f0196f..0d8b66d 100644 --- a/Makefile +++ b/Makefile @@ -284,7 +284,7 @@ ifeq ($(call try-build,$(SOURCE_STATIC),$(CFLAGS),$(LDFLAGS) -static),y) GUEST_INIT := guest/init GUEST_OBJS = guest/guest_init.o ifeq ($(ARCH_PRE_INIT),) - GUEST_INIT_FLAGS += -static + GUEST_INIT_FLAGS += -static $(PIE_FLAGS) else CFLAGS += -DCONFIG_GUEST_PRE_INIT GUEST_INIT_FLAGS += -DCONFIG_GUEST_PRE_INIT @@ -307,6 +307,10 @@ ifeq (y,$(ARCH_WANT_LIBFDT)) endif endif +ifeq ($(call try-build,$(SOURCE_HELLO),$(CFLAGS),-no-pie),y) + PIE_FLAGS += -no-pie +endif + ifneq ($(NOTFOUND),) $(warning Skipping optional libraries: $(NOTFOUND)) endif @@ -388,7 +392,7 @@ $(PROGRAM_ALIAS): $(PROGRAM) ifneq ($(ARCH_PRE_INIT),) $(GUEST_PRE_INIT): $(ARCH_PRE_INIT) $(E) " LINK " $@ - $(Q) $(CC) -s -nostdlib $(ARCH_PRE_INIT) -o $@ + $(Q) $(CC) -s $(PIE_FLAGS) -nostdlib $(ARCH_PRE_INIT) -o $@ $(Q) $(LD) -r -b binary -o guest/guest_pre_init.o $(GUEST_PRE_INIT) endif @@ -435,6 +439,8 @@ BIOS_CFLAGS += -march=i386 BIOS_CFLAGS += -mregparm=3 BIOS_CFLAGS += -fno-stack-protector +BIOS_CFLAGS += $(PIE-FLAGS) +BIOS_CFLAGS += -fno-pic x86/bios.o: x86/bios/bios.bin x86/bios/bios-rom.h -- 2.9.3 -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html