On 14/03/19 00:19, Sean Christopherson wrote: > KVM selftests embed the guest "image" as a function in the test itself > and extract the guest code at runtime by manually parsing the elf > headers. The parsing is very simple and doesn't supporting fancy things > like position independent executables. Recent versions of gcc enable > pie by default, which results in triple fault shutdowns in the guest due > to the virtual address in the headers not matching up with the virtual > address retrieved from the function pointer. > > Signed-off-by: Sean Christopherson <sean.j.christopherson@xxxxxxxxx> > --- > tools/testing/selftests/kvm/Makefile | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/tools/testing/selftests/kvm/Makefile b/tools/testing/selftests/kvm/Makefile > index 3c1f4bdf9000..73d59c9d94a3 100644 > --- a/tools/testing/selftests/kvm/Makefile > +++ b/tools/testing/selftests/kvm/Makefile > @@ -29,7 +29,7 @@ LIBKVM += $(LIBKVM_$(UNAME_M)) > INSTALL_HDR_PATH = $(top_srcdir)/usr > LINUX_HDR_PATH = $(INSTALL_HDR_PATH)/include/ > LINUX_TOOL_INCLUDE = $(top_srcdir)/tools/include > -CFLAGS += -O2 -g -std=gnu99 -I$(LINUX_TOOL_INCLUDE) -I$(LINUX_HDR_PATH) -Iinclude -I$(<D) -Iinclude/$(UNAME_M) -I.. > +CFLAGS += -O2 -g -std=gnu99 -no-pie -I$(LINUX_TOOL_INCLUDE) -I$(LINUX_HDR_PATH) -Iinclude -I$(<D) -Iinclude/$(UNAME_M) -I.. > LDFLAGS += -pthread > > # After inclusion, $(OUTPUT) is defined and > Slightly better: +CFLAGS += -O2 -g -std=gnu99 -fno-PIE -I$(LINUX_TOOL_INCLUDE) -I$(LINUX_HDR_PATH) -Iinclude -I$(<D) -Iinclude/$(UNAME_M) -I.. +LDFLAGS += -pthread -no-pie Queued for after the merge window. Paolo