[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] qemu-i386 does not start on x86_64 or i686
From: |
Rob Landley |
Subject: |
Re: [Qemu-devel] qemu-i386 does not start on x86_64 or i686 |
Date: |
Thu, 25 Oct 2007 19:52:28 -0500 |
User-agent: |
KMail/1.9.6 |
On Monday 22 October 2007 8:44:59 am Thayne Harbaugh wrote:
> On Thu, 2007-10-18 at 23:46 +0200, Ronan Keryell wrote:
> > Anybody kind enough to have a look at :
> > http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=446868
> >
> > I've asked some other people and they hit the same issue.
> > It's not clear to me where the bug is since it happens very early in the
> > starting process...
>
> I've been using this patch:
>
> Index: qemu/linux-user/main.c
> ===================================================================
> --- qemu.orig/linux-user/main.c 2007-10-15 13:52:13.000000000 -0600
> +++ qemu/linux-user/main.c 2007-10-15 13:52:13.000000000 -0600
> @@ -44,7 +44,7 @@
>
> /* for recent libc, we add these dummy symbols which are not declared
> when generating a linked object (bug in ld ?) */
> -#if (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) &&
> !defined(CONFIG_STATIC) +#if (__GLIBC__ == 2 && __GLIBC_MINOR__ == 3) &&
> !defined(CONFIG_STATIC) long __preinit_array_start[0];
> long __preinit_array_end[0];
> long __init_array_start[0];
When I tried it, it went:
gcc-3.4 -Wall -O2 -g -fno-strict-aliasing -I. -I..
-I/home/landley/qemu/git/target-i386 -I/home/landley/qemu/git
-I/home/landley/qemu/git/linux-user -I/home/landley/qemu/git/linux-user/i386
-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
-I/home/landley/qemu/git/fpu -DHAS_AUDIO -DHAS_AUDIO_CHOICE
-I/home/landley/qemu/git/slirp -c -o
main.o /home/landley/qemu/git/linux-user/main.c
gcc-3.4 -g -Wl,-shared -o qemu-i386 main.o syscall.o mmap.o signal.o path.o
osdep.o thunk.o elfload.o linuxload.o vm86.o libqemu.a gdbstub.o -lm -lrt
/usr/lib/libc_nonshared.a(elf-init.oS): In function `__libc_csu_init':
(.text+0x2b): undefined reference to `__init_array_end'
/usr/lib/libc_nonshared.a(elf-init.oS): In function `__libc_csu_init':
(.text+0x34): undefined reference to `__init_array_start'
/usr/bin/ld: qemu-i386: hidden symbol `__init_array_end' isn't defined
/usr/bin/ld: final link failed: Nonrepresentable section on output
collect2: ld returned 1 exit status
make[1]: *** [qemu-i386] Error 1
make[1]: Leaving directory `/home/landley/qemu/git/i386-linux-user'
make: *** [subdir-i386-linux-user] Error 2
Have you tried it with current cvs on Ubuntu 7.04? (qemu-i386 has never
worked for me built on that.)
Rob
--
"One of my most productive days was throwing away 1000 lines of code."
- Ken Thompson.