From owner-freebsd-emulation@FreeBSD.ORG Sat Jan 11 21:09:46 2014 Return-Path: Delivered-To: freebsd-emulation@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 156E59B8 for ; Sat, 11 Jan 2014 21:09:46 +0000 (UTC) Received: from mail-ob0-x229.google.com (mail-ob0-x229.google.com [IPv6:2607:f8b0:4003:c01::229]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id C616B150F for ; Sat, 11 Jan 2014 21:09:45 +0000 (UTC) Received: by mail-ob0-f169.google.com with SMTP id wp4so784272obc.28 for ; Sat, 11 Jan 2014 13:09:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bluelife.at; s=google; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=gUP8x9GqQKgwya0t9081NdIAn06oim5AEpzXv0ONs0E=; b=bvAbqZGFiWLmOD0Gie1JmGN9opLGdkHl7bfQqOK+qBwpuHapZyRU7LMP7+IPPFaHDF Y2gJx/j/BFw6BlM87kT69xImLy9Rccl7sZLF6jsDwcoY2hc4jm4pxQhkcvOrEtTF9kk7 tVBcKfdbEip9uMp7bwnjhiQEGy4boslJnW/GA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=gUP8x9GqQKgwya0t9081NdIAn06oim5AEpzXv0ONs0E=; b=PkOyaT/iZw/OHTzLt7QJkgbW2XE7YDcWp1ucKnX0zmhS43+2tdn70AEmyacm1K41Ib tifNqTHsPY32tldqtwq66OgGNeBB7nOzjIs6cUOOXeuP+K1Il3sbqSjPu4b9HHqzNdK5 R5tBSsrdTuKBAdfcWTCIzW3px9SKiz4+q4TEkzl8+tyRvdj7/eHoLTavGTIQAvX8BSr5 TDchgqXWTMv1XPNHEcfcnHxh5bmL9QGZBRq4obwWtb9xhiT+DhN7uyWmWrBWRDgbrkCm baBsGEwsT+UagqtSBgW2Pz8AEh29BS3+J5/lR75F8f2EVqN4WsONn3SO5pFNWpaA1b+B z2aw== X-Gm-Message-State: ALoCoQmZlIdugNfuNC2sJqZWphQWUJBHDA2qHv5LXtwtDiVb9js9+Yh3RXZ09r0R6x0Hh06pTmXe MIME-Version: 1.0 X-Received: by 10.60.67.105 with SMTP id m9mr892933oet.58.1389474584989; Sat, 11 Jan 2014 13:09:44 -0800 (PST) Received: by 10.76.154.2 with HTTP; Sat, 11 Jan 2014 13:09:44 -0800 (PST) X-Originating-IP: [46.207.8.156] Received: by 10.76.154.2 with HTTP; Sat, 11 Jan 2014 13:09:44 -0800 (PST) In-Reply-To: References: Date: Sat, 11 Jan 2014 22:09:44 +0100 Message-ID: Subject: Re: VirtualBox 4.3.6 + FreeBSD 10 + clang, [SUCCESS] From: =?ISO-8859-1?Q?Bernhard_Fr=F6hlich?= To: Craig Rodrigues Content-Type: text/plain; charset=ISO-8859-1 X-Content-Filtered-By: Mailman/MimeDel 2.1.17 Cc: freebsd-emulation@freebsd.org, ports X-BeenThere: freebsd-emulation@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Development of Emulators of other operating systems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Jan 2014 21:09:46 -0000 Am 11.01.2014 03:49 schrieb "Craig Rodrigues" : > > Hi, > > I had problems with the virtualbox-ose-4.22 port > under FreeBSD 10.0-RC5, where VirtualBox would occasionally > crash. > It looks like the mix of QT C++ libraries compiled with clang, > vs. the virtualbox-ose port compiled with g++46 was not a good mix I still think that this is a problem that needs to be fixed in Qt or even better in our ports tree. The decision to compile parts of the portstree with the base compiler and other parts with various compilers from ports is what causes all this issues. Hacking virtualbox cures the symptoms but does not fix the cause. > After reading this post: > http://lists.freebsd.org/pipermail/freebsd-emulation/2013-December/011171.html > > I obtained Jung-uk Kim's port Makefiles for VirtualBox and > I managed to compile a build of VirtualBox 4.3.6 on my system which is not > crashing. > > This is what I did: > > (1) Delete the virtualbox-ose port from my system: > > pkg delete virtualbox-ose > pkg delete virtualbox-ose-kmod > > (2) Delete the gsoap port from my system > > pkg delete gsoap > > (3) Make sure that a valid FreeBSD src tree exists under /usr/src, otherwise > the build will fail. > > (4) Check out jkim's tree from redports: > > mkdir -p /tmp/xy > cd /tmp/xy > svn co https://svn.redports.org/jkim > > (5) Build and install gsoap from jkim's port (you need to do this because the version of gsoap in the ports tree will result in failed compilation): > > cd /tmp/xy/jkim/devel/gsoap > make > make install Really? From what I was told the current gsoap should work fine with the patch that he included for the new gsoap in his tree. > (6) Build and install virtualbox-ose and virtualbox-ose-kmod ports. > > cd /tmp/xy/jkim/emulators/virtualbox-ose > make > make install > cd /tmp/xy/jkim/emulators/virtualbox-ose-kmod > make > make install That is the wrong order. You need to install kmod first or virtualbox will pull in kmod from the portstree in /usr/ports. > After doing this, I got a build of VirtualBox that: > -> built against clang, does not depend on g++ libraries > -> no need to unset QT_PLUGIN_PATH > -> works and doesn't crash :) > > Thank you for doing this Jung-uk, it was quite a lot of work > to port VirtualBox to clang! I still think this is the wrong approach and I won't maintain all those clang patches in the official port. The problem that I see is that we are diverging from upstream vbox too much and end up maintaining a very special usecase and a few dozen patches on our own. We would be the only one to build with clang so with every release we need to update our patches and add more to keep it building with clang. This will need someone that want's to do it for the next few years. Since the beginning of vbox on FreeBSD we tried to stay close to upstream sources and push patches to upstream first. This has worked good for us and has created a good relationship to them. So we have 3 options: - I step down and wish you all the best. There are a few smart people working on vbox now so it should not be an issue for the project. - Someone clones the vbox ports and maintains the clang version in the portstree. - We try to push as many patches upstream and nag them until they accept them. This might also interest some Mac OS X people. I will talk to the vbox developers to find out what they think of clang and if someone is working on updating the recompiler from qemu which would make a full clang build possible.