Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 15 Apr 2005 21:51:43 +0200
From:      Juergen Lock <nox@jelal.kn-bremen.de>
To:        Jung-uk Kim <jkim@niksun.com>
Cc:        freebsd-amd64@freebsd.org
Subject:   Re: QEMU on FreeBSD/amd64 (patches)
Message-ID:  <20050415215142.A68957@saturn.kn-bremen.de>
In-Reply-To: <200504131635.26063.jkim@niksun.com>
References:  <200504131635.26063.jkim@niksun.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Apr 13, 2005 at 04:35:26PM -0400, Jung-uk Kim wrote:
> I finally manage to build QEMU snapshot on FreeBSD/amd64 6-CURRENT.  

Nice!

> There's ports/emulators/qemu but it doesn't build on AMD64 for 
> several reasons, i. e., QEMU and FreeBSD are both fast moving targets 
> (esp. src/lib/msun), some long double math functions don't exist on 
> FreeBSD,

 So the replacements in files/patch-aa in the port didnt work for amd64?
(the ones #if defined(_BSD) && defined(USE_X86LDOUBLE))

>  GCC in base system doesn't build QEMU because of several 
> optimization bugs specific to AMD64, etc.
> 
> 1.  Install GCC 3.4 from ports.
> 
> Anything newer than 20050316 should work.  (Theoretically you can use 
> gcc40 newer than 20041127 but not verified.  Actually I am using 
> patched version of src/contrib/gcc. ;-)
> 
> 2.  Install following dependencies from ports:
> 
> 	devel/gmake (of course)
> 	net/samba
> 	devel/sdl12
> 
> I believe samba is optional but sdl12 is not.  It doesn't work without 
> SDL because `-nographic' option is broken.  I believe it is an 
> upstream bug (related to FreeBSD's pty or termios, i. e., fail to get 
> correct term size and segfault) but I couldn't pin-point the culprit 
> yet.  In fact, I didn't bother too much because SDL worked just 
> fine. ;-)

 Samba is needed for the -smb <dir> option (export a local dir to guest),
if you don't use that you can omit samba thats true.

>[...]
> Note 2: qemu-libmath-amd64.diff contains C99 long double math 
> functions taken from glibc-2.3.5 and modified for FreeBSD/amd64:
> 
> http://ftp.gnu.org/gnu/glibc/
> http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/?cvsroot=glibc
> 
> rintl()		sysdeps/i386/fpu/s_rintl.c
> atan2l()	sysdeps/i386/fpu/e_atan2l.c
> sqrtl()		sysdeps/i386/fpu/e_sqrtl.c
> llrintl()	sysdeps/x86_64/fpu/s_llrintl.S
> lrintl()	sysdeps/x86_64/fpu/s_llrintl.S
> sinl()		sysdeps/x86_64/fpu/s_sinl.S
> cosl()		sysdeps/x86_64/fpu/s_cosl.S
> tanl()		sysdeps/x86_64/fpu/s_tanl.S
> logl()		sysdeps/x86_64/fpu/e_logl.S
> powl()		sysdeps/x86_64/fpu/e_powl.S
> remainderl()	sysdeps/x86_64/fpu/e_remainderl.S
> 
> Just enough to compile QEMU snapshot until we complete C99 
> project. ;-) Similarly you can add other architectures under 
> bsd/${MACHINE_ARCH}.

 So we need different versions of these for i386 hosts?
And how about 4.x i386 hosts?  Obviously the port should still
run on those too.

	Juergen



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050415215142.A68957>