[Top][All Lists]
[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