This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: kernel-2.2.1-undefined references.




On Wed, 10 Feb 1999, Jamie Lokier wrote:

> Jamie Lokier wrote:
> > H. Peter Anvin wrote:
> > > Oh yes, __builtin_constant_p() really, really ought to work properly
> > > in an inline...
> > 
> > It does.  See egcs-1.0.3.
> 
> Bugger, I was wrong.  Sorry Peter.

It works in development versions of egcs, but as far as I know of it does
not work in _any_ released version of gcc. It certainly is not something
you can really use anyway, as using it requires that all users have to
upgrade: which may be acceptable in some environments, but is certainly
not an option in most places.

The same is true of certain other features like __builtin_return_address() 
(which _does_ work in egcs-1.0.3 I've been told, but doesn't work in many
other versions) which makes them essentially a non-issue in production
environments with multiple versions of gcc. It's good that these things
evolve and get fixed, but the fact that they have gotten fixed does NOT
mean that people can just start depending on them - that will happen much
much later. 

This is one reason why it's so important to _not_ break backwards
compatibility if at all possible: even if you introduce a new feature that
makes an old feature unnecessary, you can't just force all your users to
upgrade overnight, and you should expect people to use old and new
versions concurrently - so the old feature has to stay (not forever, but
certainly for at least one major release - which for most bigger projects
implies at least a year of "migration time"). 

No, I don't enjoy it either. Maintenance is not especially exciting or
interesting, but it _is_ important. Expect people to rely on
__builtin_constant_p inside inline functions in another two years or so.

		Linus



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]