On Thu, 2015-06-18 at 15:52 +0100, Andre Przywara wrote: > Hi, > > On 06/17/2015 10:43 AM, Andre Przywara wrote: > > For converting the guest/init binary into an object file, we call > > the linker binary, setting the endianness to big endian explicitly > > when compiling kvmtool for powerpc. > > This breaks if the compiler is actually targetting little endian > > (which is true for the Debian port, for instance). > > Remove the explicit big endianness switch from the linker call to > > allow linking on little endian PowerPC builds again. > > > > Signed-off-by: Andre Przywara <andre.przywara@xxxxxxx> > > --- > > Hi, > > > > this fixed the powerpc64le build for me, while still compiling fine > > for big endian. Admittedly this whole init->guest_init.o conversion > > has its issues (with MIPS, for instance), which deserve proper fixing, > > but lets just fix that build for now. > > Will was concerned about breaking toolchains where the linker does not > default to 64-bit. Is that an issue we care about? Yeah, that would be Debian & Ubuntu BE at least, and maybe Fedora too? I'm not sure how you compiled it big endian? > AFAICT LDFLAGS is only used in this dodgy binary-to-object-file > conversion of guest/init. For this we rely on the resulting .o file to > have the same ELF target as the other object files to be finally linked > into the lkvm binary. As we don't compile guest/init with CFLAGS, there > is a possible mismatch. > > I am looking into a proper fix for this now (compiling guest/init with > CFLAGS, calling $CC with linker options instead of $LD and allowing CC > and LD override). Still struggling with MIPS, though :-( Yeah that's obviously a better solution medium term. Can you do something like this? Sorry untested: diff --git a/Makefile b/Makefile index 6110b8e..8663d67 100644 --- a/Makefile +++ b/Makefile @@ -149,7 +149,11 @@ ifeq ($(ARCH), powerpc) OBJS += powerpc/xics.o ARCH_INCLUDE := powerpc/include CFLAGS += -m64 - LDFLAGS += -m elf64ppc + ifeq ($(call try-build,$(SOURCE_HELLO),$(CFLAGS),-m elf64ppc),y) + LDFLAGS += -m elf64ppc + else + LDFLAGS += -m elf64leppc + endif ARCH_WANT_LIBFDT := y endif cheers -- 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