On 26 October 2016 at 20:32, Will Deacon <will.deacon@xxxxxxx> wrote: > On Mon, Oct 24, 2016 at 01:58:53PM +0300, riku.voipio@xxxxxxxxxx wrote: >> 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) > > Shouldn't that be an underscore? Did you test this? Welp, I did test. And since it worked, it implies that -no-pie is not needed for BIOS_FLAGS... Updating in a moment. Riku -- 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