Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 04 Jan 2003 11:41:04 -0700
From:      Brett Glass <brett@lariat.org>
To:        Terry Lambert <tlambert2@mindspring.com>, Cliff Sarginson <cls@raggedclown.net>
Cc:        freebsd-chat@FreeBSD.ORG
Subject:   FreeBSD's use of GCC (Was: Bystander shot by a spam filter.)
Message-ID:  <4.3.2.7.2.20030104112345.02a48b70@localhost>
In-Reply-To: <3E13434F.D3F7A35D@mindspring.com>
References:  <200212312041.gBVKfr183480@hokkshideh2.jetcafe.org> <3E120659.3D60EB30@mindspring.com> <20030101140530.GA11468@raggedclown.net>

next in thread | previous in thread | raw e-mail | index | archive | help
At 12:36 PM 1/1/2003, Terry Lambert wrote:

>Seriously, though, there are a number of possible compilers,
>but FreeBSD keeps adding constructs and removing portability,
>and, in general, getting more and more GCC dependent, as time
>goes on (hmmm... RMS paying pwople off?...).  

No, it's a combination of two things. First of all, RMS and
the FSF engage in "embrace and extend" tactics (which they
condemn when Microsoft uses them.... Hmmm.). Make use of 
any of the unique quirks of GCC, or its internal assembler
with its "reversed" syntax, and before long you literally 
have to port your code to get it to compile on any other 
C compiler.

Secondly, the FreeBSD project is insufficiently vigilant regarding
the issue of dependency on GPLed code. Of the BSDs, FreeBSD
has the most GPLed code, and would be the most crippled if
that code were removed. This is sad, IMHO, because it prevents
FreeBSD from being truly free. Most of FreeBSD may be licensed
under the BSD License, but what good is that if one can't install
it on one's machine without bringing in the GPL? 

OpenBSD pretty much avoids the use of GPLed code except in the
toolchain. I'd like to see them take an even tougher stance,
and eject the GPL from their code base altogether. But while 
they removed ipfilter over a much smaller licensing issue,
they have not done the same with GPLed code. Why? One can only
speculate that it's because GCC is now so dominant that
other compilers just aren't obtainable... and also because so
much of the third party software for OpenBSD is dependent
upon GCC as well. A vicious cycle that needs breaking.

>In any case, a
>compiler is almost trivial; what's hard, and takes specialized
>knowledge, is optimizing, and code generation, for more than
>one CPU family.

True.

>RMS' great contribution in this regard is *not* the compiler
>itself; what he contributed there is actually a mediocre set
>of code, that other people then worked on to turn it into what
>it is today.  In fact, he had to eat crow on EGCS to get it to
>be only a version successor to GCC, rather than a competing
>project.  So RMS's contribution was the project, itself: the
>difficulty of writing a compiler is actually irrelevent to the
>discussion.

Also true. It's amazing how often one hears RMS described as
a master coder, when in fact the original GCC was awful.

>It's amazing to me the number of people who claim to study the
>Open Source Software phenomenon, yet don't understand the basic
>principles through which it actually functions, well enough to
>start, or help start, a project and have it persist.

It's simple: It's what I call the "Yosemite Sam Principle."

Remember the classic cartoon in which Yosemite Sam attempts to get 
Bugs Bunny to blow himself up by playing a booby-trapped piano? 

Sam challenges Bugs to play the "pie-anner," which is rigged to 
explode when a particular key is pressed. Bugs plays the tune from 
the sheet music, but keeps hitting a wrong note and doesn't set 
off the explosive. Finally, the frustrated Sam leaps in front of 
Bugs, yelling, "No, you stupid rabbit! Like this!" and plays the
tune correctly.

The explosive goes off.

This is one of the secrets of open source: One of the ways to get
people to do something right for you is to do it wrong yourself
and let other people's egos intervene. They'll soon do it better
than you could (though, in the case of GCC, not necessarily as
well as it could be done).

--Brett Glass


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-chat" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4.3.2.7.2.20030104112345.02a48b70>