qemu-devel
[Top][All Lists]
Advanced

[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.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]