From: "Andreas Färber" <andreas.faerber@web.de>
To: Jes Sorensen <jes@sgi.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [patch 1/2] machine struct - use C99 initializers
Date: Sun, 26 Oct 2008 16:17:27 +0100 [thread overview]
Message-ID: <CD83DF0F-C39C-4650-98E6-9390FFABADEB@web.de> (raw)
In-Reply-To: <48EB0C15.4040507@sgi.com>
Jes,
Am 07.10.2008 um 09:13 schrieb Jes Sorensen:
> Andreas Färber 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.
>> You're missing the point: GCC today is not necessarily GCC 4.3+ or
>> whatever has just been released these days and included in your
>> favorite Linux distro. Just like Sun continues to ship GCC 3.4.3 on
>> their latest OpenSolaris builds, the BeOS world and therefore its
>> successor(s) are stuck with GCC 2.95.3 due to C++ ABI breakage in
>> between major GCC versions. GCC 2 was originally released in '98
>> iirc and hence not C99 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.
I am as much a BeOS user as you are an IRIX user. They're examples. As
another one, see the more recent Sun C99 stdbool.h and math issues
(gcc3). It used to compile fine, now without having even such a C99-or-
not discussion it is broken due to C99 stuff. Btw even recent GCCs
have an -ansi switch that some software deliberately uses, e.g.
freetype2 iirc, so that today's system headers need to be ANSI-
compliant, not C99.
Which GCC version an OS like Haiku or Solaris or Mac OS X chooses to
use is not under my control, nor probably anyone else's here, and
porting gcc is not among my skills to date. Nor would I want to do
that for every OS someone wants to use QEMU on, fwiw. Personally, I am
hoping for Haiku to get some gcc4 fully up and running.
>
>> So while this argument for using C99 is flawed, there may be valid
>> reasons for QEMU to use more C99 constructs. But their pure
>> availability 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
QEMU still does officially require gcc3.
> and have BeOS users compile it
> with gcc3. I don't see that affecting the issue with broken C++ ABIs.
The issue with C++ ABI breakage is in the use of C++ system libraries,
like Michael does iiuc (Be API). I am not involved in that port myself
though, nor running QEMU on Haiku/BeOS, so cannot offer any more
details.
All that people here have been telling you is that the latest and
greatest GCC on The OS shouldn't affect the choice of C99 features
used because some platforms cannot use them (fully). No one, certainly
not me, has been battling the use of gcc3+ or existing C99 features.
Hope that clarifies things,
Andreas
next prev parent reply other threads:[~2008-10-26 15:17 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-06 13:09 [Qemu-devel] [patch 1/2] machine struct - use C99 initializers Jes Sorensen
2008-10-06 15:05 ` Johannes Schindelin
2008-10-06 15:03 ` Jes Sorensen
2008-10-06 15:26 ` Johannes Schindelin
2008-10-06 15:23 ` Anthony Liguori
2008-10-06 20:22 ` Ronan Keryell
2008-10-06 22:46 ` Andreas Färber
2008-10-06 23:07 ` Paul Brook
2008-10-06 23:38 ` M. Warner Losh
2008-10-07 13:50 ` Paul Brook
2008-10-07 7:13 ` Jes Sorensen
2008-10-26 15:17 ` Andreas Färber [this message]
2008-10-06 15:30 ` Thiemo Seufer
2008-10-07 20:34 ` Anthony Liguori
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CD83DF0F-C39C-4650-98E6-9390FFABADEB@web.de \
--to=andreas.faerber@web.de \
--cc=jes@sgi.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).