From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Kn6lD-0006IC-3w for qemu-devel@nongnu.org; Tue, 07 Oct 2008 03:13:35 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Kn6lA-0006I0-JG for qemu-devel@nongnu.org; Tue, 07 Oct 2008 03:13:33 -0400 Received: from [199.232.76.173] (port=33908 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Kn6lA-0006Hx-Bl for qemu-devel@nongnu.org; Tue, 07 Oct 2008 03:13:32 -0400 Received: from mx20.gnu.org ([199.232.41.8]:8719) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1Kn6l9-0004Q5-V7 for qemu-devel@nongnu.org; Tue, 07 Oct 2008 03:13:32 -0400 Received: from relay1.sgi.com ([192.48.171.29] helo=relay.sgi.com) by mx20.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1Kn6l8-0007xX-UK for qemu-devel@nongnu.org; Tue, 07 Oct 2008 03:13:31 -0400 Message-ID: <48EB0C15.4040507@sgi.com> Date: Tue, 07 Oct 2008 09:13:25 +0200 From: Jes Sorensen MIME-Version: 1.0 Subject: Re: [Qemu-devel] [patch 1/2] machine struct - use C99 initializers References: <48EA0E22.4080302@sgi.com> <48EA28DC.40604@sgi.com> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: quoted-printable Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?ISO-8859-1?Q?Andreas_F=E4rber?= Cc: qemu-devel@nongnu.org Andreas F=E4rber wrote: >> GCC is sufficiently C99 compliant to handle this style of initializers= . >> Maybe it's not C99 compliant enough for other stuff, but on this front >> it does just fine. >=20 > You're missing the point: GCC today is not necessarily GCC 4.3+ or=20 > whatever has just been released these days and included in your favorit= e=20 > Linux distro. Just like Sun continues to ship GCC 3.4.3 on their latest= =20 > OpenSolaris builds, the BeOS world and therefore its successor(s) are=20 > stuck with GCC 2.95.3 due to C++ ABI breakage in between major GCC=20 > versions. GCC 2 was originally released in '98 iirc and hence not C99=20 > compliant. I'd expect your IRIX to face a similar issue, at EOL. Andreas, I have sympathy with the BeOS users, however C99 style (not I am not arguing that we necessarily need to require a full C99 compliant compiler), are very common today and trying to stick to an ancient and by now, far obsolete compiler, like 2.95.3 simply means that BeOS little by little will not be able to compile any recent applications. The BeOS community can try and battle every codebase being modernized or it can put the efforts into updating it's compiler suite. Yes I know it's painful, but I am going to argue it will be a better spent effort than trying to hold back reality. It's a bit like argueing that everybody must use candle lighting and not electrical because there are still a few people living in houses which doesn't have any electricity. One interim step could be for OSes like BeOS to switch to egcs or Red Hat's old gcc-2.96 base. I believe both support C99 style struct initializers while still sticking to the old C++ ABI. FWIW, please don't try and use my email address as an indication that I care about IRIX. If you do so, you obviously don't know me. That OS has been dead for years and it's proprietary. > So while this argument for using C99 is flawed, there may be valid=20 > reasons for QEMU to use more C99 constructs. But their pure availabilit= y=20 > in the latest GCCs is not very convincing. Well given that QEMU doesn't contain any C++, another option would be to say we require at least gcc3 for QEMU and have BeOS users compile it with gcc3. I don't see that affecting the issue with broken C++ ABIs. Cheers, Jes