qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] Build errors


From: Thomas Schwinge
Subject: Re: [Qemu-devel] Build errors
Date: Tue, 26 Oct 2004 21:24:19 +0200
User-agent: Mutt/1.4.2.1i

On Mon, Oct 25, 2004 at 06:55:59PM +0200, Thomas Schwinge wrote:
> #v+
> gcc  -static -Wl,-T,/tmp/build/qemu/qemu-20041025T160836Z/i386-vl.ld  -o 
> qemu-fast vl.o osdep.o block.o readline.o monitor.o pci.o console.o 
> block-cow.o block-qcow.o aes.o block-vmdk.o block-cloop.o ide.o ne2000.o 
> pckbd.o vga.o sb16.o dma.o oss.o fdc.o mc146818rtc.o serial.o i8259.o i8254.o 
> pc.o cirrus_vga.o gdbstub.o slirp/cksum.o slirp/if.o slirp/ip_icmp.o 
> slirp/ip_input.o slirp/ip_output.o slirp/slirp.o slirp/mbuf.o slirp/misc.o 
> slirp/sbuf.o slirp/socket.o slirp/tcp_input.o slirp/tcp_output.o 
> slirp/tcp_subr.o slirp/tcp_timer.o slirp/udp.o slirp/bootp.o slirp/debug.o 
> slirp/tftp.o libqemu.a 
> -L/package/misc/spf/qemu-20041025T160836Z-1/spf/sdl/lib 
> -Wl,-R,/package/misc/spf/qemu-20041025T160836Z-1/spf/sdl/lib 
> -L/package/misc/spf/qemu-20041025T160836Z-1/spf/zlib/lib 
> -Wl,-R,/package/misc/spf/qemu-20041025T160836Z-1/spf/zlib/lib -lm -lz  -lutil
> slirp/misc.o(.text+0x24): In function `getouraddr':
> : warning: Using 'gethostbyname' in statically linked applications requires 
> at runtime the shared libraries from the glibc version used for linking
> /package/misc/spf/gcc-3.4.2-2/spf/ld: BFD 2.15.92.0.2 20040927 assertion fail 
> elf.c:3633
> /package/misc/spf/gcc-3.4.2-2/spf/ld: qemu-fast: Not enough room for program 
> headers (allocated 5, need 6)
> /package/misc/spf/gcc-3.4.2-2/spf/ld: final link failed: Bad value
> collect2: ld returned 1 exit status
> make[1]: *** [qemu-fast] Error 1
> make[1]: Leaving directory 
> `/fs/data/mount/tmp/build/qemu/qemu-20041025T160836Z/i386'
> make: *** [all] Error 1
> #v-

This turns out to be a incompatibility between any of QEMU, glibc's TLS
and binutils.

I was using glibc-2.3.3 with TLS and NPTL.

I also tried binutils-2.15-branch and the CVS HEAD version, all of them
gave the same error message.

The lines around the failing assertion:
binutils-HEAD/bfd/elf.c
#v+
[...]
      m->count = tls_count;
      /* Mandated PF_R.  */
      m->p_flags = PF_R;
      m->p_flags_valid = 1;
      for (i = 0; i < tls_count; ++i)
        {
          BFD_ASSERT (first_tls->flags & SEC_THREAD_LOCAL);
          m->sections[i] = first_tls;
          first_tls = first_tls->next;
        }

      *pm = m;
      pm = &m->next;
    }
[...]
#v-

Using an old glibc-2.3.2 without TLS and NPTL made the error disappear.

Is anyone succeeding in building QEMU against a glibc with TLS?

Shall I report this somewhere upstream?


Regards,
 Thomas




reply via email to

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