Subject: pkg/36602: qemu does not compile on NetBSD before 4.0
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: None <khorben@defora.org>
List: pkgsrc-bugs
Date: 07/04/2007 02:05:00
>Number: 36602
>Category: pkg
>Synopsis: qemu does not compile on NetBSD before 4.0
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: pkg-manager
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Wed Jul 04 02:05:00 +0000 2007
>Originator: Pierre Pronchery
>Release: NetBSD 4.0_BETA2
>Organization:
khorben
>Environment:
System: NetBSD syn.defora.rom 4.0_BETA2 NetBSD 4.0_BETA2 (GENERIC.MP) #9: Tue Jul 3 04:15:02 CEST 2007 khorben@syn.defora.rom:/usr/obj/sys/arch/amd64/compile/GENERIC.MP amd64
Architecture: x86_64
Machine: amd64
>Description:
qemu 0.9.0 from pkgsrc does not build on NetBSD. It's complaining about
a missing symbol:
libqemu.a(softfloat-native.o)(.text+0x21a): In function `float64_trunc_to_int':
/home/netbsd/pkgsrc/work/emulators/qemu/work/qemu-0.9.0/fpu/softfloat-native.c:226: undefined reference to `trunc'
collect2: ld returned 1 exit status
gmake[1]: *** [qemu] Error 1
gmake[1]: Leaving directory `/home/netbsd/pkgsrc/work/emulators/qemu/work/qemu-0.9.0/i386-softmmu'
gmake: *** [subdir-i386-softmmu] Error 2
*** Error code 2
Compiling this file actually triggers the following warning:
/home/netbsd/pkgsrc/work/emulators/qemu/work/qemu-0.9.0/fpu/softfloat-native.c: In function `float64_trunc_to_int':
/home/netbsd/pkgsrc/work/emulators/qemu/work/qemu-0.9.0/fpu/softfloat-native.c:226: warning: implicit declaration of function `trunc'
trunc() was added to NetBSD in March 2006, and is apparently not
available in a release before 4.0:
RCS file: /cvsroot/src/lib/libm/src/s_trunc.c,v
Working file: s_trunc.c
head: 1.2
branch:
locks: strict
access list:
symbolic names:
wrstuden-fixsa-base-1: 1.1
wrstuden-fixsa: 1.1.0.6
wrstuden-fixsa-base: 1.1
abandoned-netbsd-4-base: 1.1
abandoned-netbsd-4: 1.1.0.2
netbsd-4: 1.1.0.4
netbsd-4-base: 1.1
keyword substitution: kv
total revisions: 2; selected revisions: 2
description:
----------------------------
revision 1.2
date: 2007/01/17 23:24:22; author: hubertf; state: Exp; lines: +2 -3
Remove more duplicate #includes, and a few spurious whitespaces at EOL
From Slava Semushin <slava.semushin@gmail.com>
----------------------------
revision 1.1
date: 2006/03/25 16:41:12; author: xtraeme; state: Exp;
Add trunc() and truncf() C99 functions, from FreeBSD.
>How-To-Repeat:
Compile code that uses trunc() from <math.h> on any NetBSD release
before 4.0.
>Fix:
I would suggest implementing trunc() in qemu like this: (pseudo code)
#if defined(__NetBSD__) && __NetBSD_VERSION__ < 4.0
/* dump the content of trunc() here */
#endif
>Unformatted:
With a NetBSD 3.1 userland (amd64).