I'm the only one whom this patch breaks compilation? Is a cross-compiled qemu, but the make had run smoothly until now, and a git bisect has driven me here.
My configuration is a bit strange: configure: PKG_CONFIG_PATH=/usr/powerpc-linux-gnu/lib/pkgconfig ./configure --prefix=/mnt/DATA/DARCO/alien --enable-debug-tcg --enable-debug --enable-trace-backend=simple --disable-strip --disable-kvm --enable-profiler --target-list=i386-softmmu --static --disable-curl --cross-prefix=powerpc-linux-gnu- --with-coroutine=sigaltstack errors: /usr/lib/gcc/powerpc-linux-gnu/4.4.5/../../../../powerpc-linux-gnu/bin/ld: i386 architecture of input file `hw/device-hotplug.o' is incompatible with powerpc:common output (and also with other input file on hw: kvmapic.o, multiboot.o, smbios.o, vga.o, target-i386/machine.o, target-i386/translate.o) followed by (maybe related?) "relocation truncated to fit:" for various files ended. It all (the compilation crash) ends with /mnt/DATA/DARCO/qemu-git/qemu-file.h:142: additional relocation overflows omitted from the output /usr/lib/gcc/powerpc-linux-gnu/4.4.5/../../../../powerpc-linux-gnu/bin/ld: BFD (GNU Binutils for Debian) 2.20.1.20100303 internal error, aborting at ../../bfd/elf32-ppc.c line 7447 in ppc_elf_relocate_section /usr/lib/gcc/powerpc-linux-gnu/4.4.5/../../../../powerpc-linux-gnu/bin/ld: Please report this bug. I'm not a guru on makefiles, so I'm sure I'm missing important things. Could anyone give me some pointers? What to check? Do I start a new thread with more detailed information and compilation output? Do I try to isolate the problem? Is this a easy thing to fix that I have overlooked? Thanks, Alex Barcelo On Thu, Jun 7, 2012 at 9:39 AM, Paolo Bonzini <pbonz...@redhat.com> wrote: > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> > --- > Makefile.target | 32 ++++++++++---------------------- > bsd-user/Makefile.objs | 2 ++ > configure | 8 +++++++- > linux-user/Makefile.objs | 7 +++++++ > linux-user/arm/nwfpe/Makefile.objs | 2 ++ > 5 files changed, 28 insertions(+), 23 deletions(-) > create mode 100644 bsd-user/Makefile.objs > create mode 100644 linux-user/Makefile.objs > create mode 100644 linux-user/arm/nwfpe/Makefile.objs > > diff --git a/Makefile.target b/Makefile.target > index 40b774a..5cc577b 100644 > --- a/Makefile.target > +++ b/Makefile.target > @@ -113,32 +113,20 @@ user-exec.o: QEMU_CFLAGS += $(HELPER_CFLAGS) > > # Note: this is a workaround. The real fix is to avoid compiling > # cpu_signal_handler() in user-exec.c. > -signal.o: QEMU_CFLAGS += $(HELPER_CFLAGS) > +%/signal.o: QEMU_CFLAGS += $(HELPER_CFLAGS) > > ######################################################### > # Linux user emulator target > > ifdef CONFIG_LINUX_USER > > -$(call set-vpath, > $(SRC_PATH)/linux-user:$(SRC_PATH)/linux-user/$(TARGET_ABI_DIR)) > - > QEMU_CFLAGS+=-I$(SRC_PATH)/linux-user/$(TARGET_ABI_DIR) > -I$(SRC_PATH)/linux-user > -obj-y = main.o syscall.o strace.o mmap.o signal.o thunk.o \ > - elfload.o linuxload.o uaccess.o gdbstub.o cpu-uname.o \ > - user-exec.o $(oslib-obj-y) > - > -obj-$(TARGET_HAS_BFLT) += flatload.o > - > -obj-$(TARGET_I386) += vm86.o > > +obj-y += linux-user/ > +obj-y += gdbstub.o thunk.o user-exec.o $(oslib-obj-y) > obj-i386-y += ioport-user.o > - > -nwfpe-obj-y = fpa11.o fpa11_cpdo.o fpa11_cpdt.o fpa11_cprt.o fpopcode.o > -nwfpe-obj-y += single_cpdo.o double_cpdo.o extended_cpdo.o > -obj-arm-y += $(addprefix nwfpe/, $(nwfpe-obj-y)) > -obj-arm-y += arm-semi.o > - > -obj-m68k-y += m68k-sim.o m68k-semi.o > +obj-$(TARGET_ARM) += arm-semi.o > +obj-$(TARGET_M68K) += m68k-semi.o > > obj-y += $(addprefix ../, $(universal-obj-y)) > obj-y += $(addprefix ../libuser/, $(user-obj-y)) > @@ -152,13 +140,10 @@ endif #CONFIG_LINUX_USER > > ifdef CONFIG_BSD_USER > > -$(call set-vpath, $(SRC_PATH)/bsd-user) > - > QEMU_CFLAGS+=-I$(SRC_PATH)/bsd-user -I$(SRC_PATH)/bsd-user/$(TARGET_ARCH) > > -obj-y = main.o bsdload.o elfload.o mmap.o signal.o strace.o syscall.o \ > - gdbstub.o uaccess.o user-exec.o > - > +obj-y += bsd-user/ > +obj-y += gdbstub.o user-exec.o > obj-i386-y += ioport-user.o > > obj-y += $(addprefix ../, $(universal-obj-y)) > @@ -408,6 +393,9 @@ endif # CONFIG_LINUX_USER > > obj-$(CONFIG_GDBSTUB_XML) += gdbstub-xml.o > > +nested-vars = obj-y > +dummy := $(call unnest-vars) > + > ifdef QEMU_PROGW > # The linker builds a windows executable. Make also a console executable. > $(QEMU_PROGW): $(obj-y) $(obj-$(TARGET_BASE_ARCH)-y) > diff --git a/bsd-user/Makefile.objs b/bsd-user/Makefile.objs > new file mode 100644 > index 0000000..5e77f57 > --- /dev/null > +++ b/bsd-user/Makefile.objs > @@ -0,0 +1,2 @@ > +obj-y = main.o bsdload.o elfload.o mmap.o signal.o strace.o syscall.o \ > + uaccess.o > diff --git a/configure b/configure > index 76dd57f..2c44488 100755 > --- a/configure > +++ b/configure > @@ -3520,8 +3520,14 @@ mkdir -p $target_dir/ide > mkdir -p $target_dir/usb > mkdir -p $target_dir/9pfs > mkdir -p $target_dir/kvm > +if test "$target_linux_user" = yes; then > + mkdir -p $target_dir/linux-user > +fi > +if test "$target_bsd_user" = yes; then > + mkdir -p $target_dir/bsd-user > +fi > if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" -o > "$target" = "arm-bsd-user" -o "$target" = "armeb-bsd-user" ; then > - mkdir -p $target_dir/nwfpe > + mkdir -p $target_dir/linux-user/arm/nwfpe > fi > symlink "$source_path/Makefile.target" "$target_dir/Makefile" > > diff --git a/linux-user/Makefile.objs b/linux-user/Makefile.objs > new file mode 100644 > index 0000000..5899d72 > --- /dev/null > +++ b/linux-user/Makefile.objs > @@ -0,0 +1,7 @@ > +obj-y = main.o syscall.o strace.o mmap.o signal.o \ > + elfload.o linuxload.o uaccess.o cpu-uname.o > + > +obj-$(TARGET_HAS_BFLT) += flatload.o > +obj-$(TARGET_I386) += vm86.o > +obj-$(TARGET_ARM) += arm/nwfpe/ > +obj-$(TARGET_M68K) += m68k-sim.o > diff --git a/linux-user/arm/nwfpe/Makefile.objs > b/linux-user/arm/nwfpe/Makefile.objs > new file mode 100644 > index 0000000..51b0c32 > --- /dev/null > +++ b/linux-user/arm/nwfpe/Makefile.objs > @@ -0,0 +1,2 @@ > +obj-y = fpa11.o fpa11_cpdo.o fpa11_cpdt.o fpa11_cprt.o fpopcode.o > +obj-y += single_cpdo.o double_cpdo.o extended_cpdo.o > -- > 1.7.10.1 > > >