public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Renate Meijer <kleuske@xs4all.nl>
To: Blaisorblade <blaisorblade@yahoo.it>
Cc: jdike@karaya.com, linux-kernel@vger.kernel.org,
	"Jörn Engel" <joern@wohnheim.fh-wedel.de>,
	stable@kernel.org, "Greg KH" <gregkh@suse.de>
Subject: Re: [08/08] uml: va_copy fix
Date: Thu, 7 Apr 2005 11:16:08 +0200	[thread overview]
Message-ID: <448f048a060cc7db1fc00a489c86ac05@xs4all.nl> (raw)
In-Reply-To: <200504062109.51344.blaisorblade@yahoo.it>


On Apr 6, 2005, at 9:09 PM, Blaisorblade wrote:

> For Jörn Engel and the issue he opened: at the end of this mail I 
> describe
> another bug caught by 2.95 and not by 3.x.
>
> On Tuesday 05 April 2005 22:18, Renate Meijer wrote:
>> On Apr 5, 2005, at 8:53 PM, Blaisorblade wrote:
>>> On Tuesday 05 April 2005 20:47, Renate Meijer wrote:
>>>> On Apr 5, 2005, at 6:48 PM, Greg KH wrote:
>
>>>> The use of '__' violates compiler namespace.
>>>
>>> Why? The symbol is defined by the compiler itself.
>
>> If a function is prefixed with a double underscore, this implies the
>> function is internal to
>> the compiler, and may change at any time, since it's not governed by
>> some sort of standard.
>> Hence that code may start suffering from bitrot and complaining to the
>> compiler guys won't help.
>
>> They'll just tell you to RTFM.
> Ok, agreed in general. However, the -stable tree is for "current" GCC. 
> Your
> objections would better refer to the fact that the same patch has 
> already
> been merged into the main trunk.
>
> Also, they have no point in doing this, probably. And the __va_copy 
> name was
> used in the draft C99 standard so it's widespread (I've read this on 
> "man 3
> va_copy").


>>>> If 2.95.4 were not easily
>>>> replaced by
>>>> a much better version (3.3.x? 3.4.x) I would see a reason to 
>>>> disregard
>>>> this, but a fix
>>>> merely to satisfy an obsolete compiler?
>>>
>>> Let's not flame, Linus Torvalds said "we support GCC 2.95.3, because
>>> the newer
>>> versions are worse compilers in most cases".
>
>> You make it sound as if you were reciting Ye Holy Scribings. When did
>> Linus Thorvalds say this? In the Redhat-2.96 debacle? Before or after
>> 3.3? I have searched for that quote,

> Sorry for the quote marks, it was a resume of what he said (and from
> re-reading, it's still a correct resume).


>> but could not find it, and having
>> suffered under 3.1.1, I can well understand his wearyness for the
>> earlier versions.
>

> I've read the same kerneltrap article you quote.
>> See
>>
>> http://kerneltrap.org/node/4126, halfway down.
> Ok, read.
>> For the cold, hard facts...
>>
>> http://www.suse.de/~aj/SPEC/
> Linus pointed out that SPEC performances are not a good test case for 
> the
> kernel compilation in that article. Point out a kernel compilation 
> case.


>> <snip>
>>
>>> Consider me as having no opinion on this except not wanting to break
>>> on purpose Debian users.
>>
>> If Debian users are stuck with a pretty outdated compiler, i'd
>> seriously suggest migrating to some
>> other distro which allows more freedom.
> I guess they can, if they want, upgrade some selected packages from 
> newer
> trees, maybe by recompiling (at least, on Gentoo it's trivial, maybe 
> on a
> binary distro like Debian it's harder).

On a binary distro they can recompile, too. Althoughg i'll admit it's 
not something
a newbie should do.
>> If linux itself is holding them
>> back, there's a need for some serious patching.
>
>> If there are serious
>> issues in the gcc compiler, which hinder migration to a more 
>> up-to-date
>> version our efforts should be directed at solving them in that 
>> project,
>> not this.
> Linus spoke about the compiler speed, which isn't such a bad reason.

It may be a reason for folks who do  a lot of development. But that can 
hardly serve
as a "main" reason. Speed of compilation, after all, is a one-time 
thing. Howver, as i've
understood, there are more pressing reasons.

>  He's
> unfair in saying that GCC 3.x does not optimize better than older 
> releases,
> probably; I guess that the compilation flags (I refer to
> -fno-strict-aliasing, which disables some optimizations) make some
> difference, as do the memory barriers (as pointed in the comments).
>
>>> If you want, submit a patch removing Gcc 2.95.3 from supported
>>> versions, and get ready to fight
>>> for it (and probably loose).
>
>> I don't fight over things like that, i'm not interested in politics. I
>> merely point out the problem. And yes.
>> I do think support for obsolete compiler should be dumped in favor of 
>> a
>> more modern version. Especially if that compiler requires invasions of
>> compiler-namespace. The patch, as presented, is not guaranteed to be
>> portable over versions, and may thus introduce another problem with
>> future versions of GCC.

> When and if that will happen, I'll come with an hack.

Ok. And a couple of hacks down the road, and the code will look nice 
and cryptic and a newbie trying to understand what's going on, will 
have a nice set of puzzles to solve.

> UML already has need for some GCC - version specific behaviour
> (see arch/um/kernel/gmon_syms.c on a recent BitKeeper snapshot,
> even -rc1-bk5 has this code).

Perhaps. But i think you'll agree it's not "The way to go".

>>> Also, that GCC has discovered some syscall table errors in UML - I
>>> sent a
>>> separate patch, which was a bit big sadly (in the reduced version,
>>> about 70
>>> lines + description).
>
>> I am not quite sure what is intended here... Please explain.
> I'm reattaching the patch, so that you can look at the changelog (I'm 
> also
> resending it as a separate email so that it is reviewed and possibly 
> merged).
> Basically this is an error in GCC 2 and not in GCC 3:
>
> int [] list = {
>  [0] = 1,
>  [0] = 1
> }
> (I've not tested the above itself, but this should be a stripped down 
> version
> of one of the bugs fixed in the patch).
>
> That sort of code in the UML syscall table is not the safer one - in 
> fact,
> apart this patch for the stable tree, I'm refactoring the UML syscall 
> table
> completely (for 2.6.12 / 2.6.13).
>
> Btw: I've not investigated which one of the two behaviours is the 
> buggy one -
> if you know, maybe you or I can report it.

 From a strict ISO-C point of view, both are. It's a gcc-specific 
"feature" which (agreed) does come in handy sometimes. However it makes 
it quite hard to say which is the buggy version, since the 
"appropriate" behavior
is a question of definition (by the gcc-folks). They may even argue 
that, having changed their minds about it, neither is buggy, but both 
conform to the specifications (for that specific functionality).

That's pretty much the trouble with relying on gcc-extensions: since 
there's no standard, it's difficult to tell what's wrong and what's 
right. I'll dive into it.

Regards,

Renate Meijer.


timeo hominem unius libri

Thomas van Aquino


  parent reply	other threads:[~2005-04-07  9:54 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-04-05 16:45 [00/11] -stable review Greg KH
2005-04-05 16:46 ` [01/08] Fix Oops with ALSA timer event notification Greg KH
2005-04-05 16:46 ` [02/08] Prevent race condition in jbd Greg KH
2005-04-05 16:46 ` [03/08] fix ia64 syscall auditing Greg KH
2005-04-05 20:27   ` David Mosberger
2005-04-05 20:49     ` Greg KH
2005-04-05 21:01       ` Randy.Dunlap
2005-04-05 23:46       ` Ryan Anderson
2005-04-06  0:05         ` Greg KH
2005-04-06  0:48           ` Dave Jones
2005-04-06 22:43         ` Andrew Morton
2005-04-05 16:47 ` [04/08] I2C: Fix oops in eeprom driver Greg KH
2005-04-05 16:47 ` [05/08] [IPSEC]: Do not hold state lock while checking size Greg KH
2005-04-05 16:47 ` [06/08] rwsem fix Greg KH
2005-04-05 16:47 ` [07/08] [TCP] Fix BIC congestion avoidance algorithm error Greg KH
2005-04-05 18:22   ` Theodore Ts'o
2005-04-05 18:26     ` David S. Miller
2005-04-05 18:32       ` Stephen Hemminger
2005-04-05 16:48 ` [08/08] uml: va_copy fix Greg KH
2005-04-05 18:47   ` Renate Meijer
2005-04-05 18:53     ` Blaisorblade
2005-04-05 20:18       ` Renate Meijer
2005-04-06 11:32         ` Jörn Engel
2005-04-06 12:04           ` Renate Meijer
2005-04-06 12:27             ` Jörn Engel
2005-04-06 15:46               ` [stable] " Greg KH
2005-04-06 17:29                 ` Renate Meijer
2005-04-06 17:33                   ` Jörn Engel
2005-04-06 17:58                     ` Renate Meijer
2005-04-06 18:13                       ` Jörn Engel
2005-04-06 19:13             ` Blaisorblade
2005-04-06 19:09         ` Blaisorblade
2005-04-06 19:30           ` Jörn Engel
2005-04-07  9:16           ` Renate Meijer [this message]
2005-04-07 18:25             ` Blaisorblade
2005-04-05 17:28 ` [00/11] -stable review Greg KH

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=448f048a060cc7db1fc00a489c86ac05@xs4all.nl \
    --to=kleuske@xs4all.nl \
    --cc=blaisorblade@yahoo.it \
    --cc=gregkh@suse.de \
    --cc=jdike@karaya.com \
    --cc=joern@wohnheim.fh-wedel.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stable@kernel.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