From: rfg@netcom.com (Ronald F. Guilmette)
Subject: Re: GCC, Solaris 2.0, Cygnus Support, and a lesson in corporate ethics
Date: Sat, 15 Aug 92 15:52:38 GMT
Organization: Netcom - Online Communication Services  (408 241-9760 guest) 

In article <WBE.92Aug13012313@crystal.bbn.com> wbe@bbn.com (Winston Edmond) writes:
>That's certainly an interesting piece of history about Cygnus, gcc, and the
>port to Solaris 2.0 for SPARCs.  There are some things you didn't discuss,
>though.
>
>First, the $2000 Cygnus solicited was advertised as having two parts:
>(1) (which you mentioned) it would help get gcc ported to Solaris 2.0 and
>    placed on the Catalyst CD-ROM by the shipping date for Solaris 2.0, so no
>    one would have to be without a C compiler;
>(2) (not mentioned) it purchased one year of Cygnus's support at a price 2/3
>    of the usual price for such support.

So you are saying that the "standard" price for a Cygnus "support" contract
is $3000, right?  I'm sure that the folks that are paying cygnus $25,000
and/or $100,000 for the same service will be interested to hear that.

>Second, part of Cygnus's appeal to potential contributors was that they were
>promising a working version by a specific date -- the Solaris 2.0 ship date.

Considering that at the time of their "offer", GCC had already been fully
hosted and targeted to Sparcs (running SunOS 4.1.2) and that it was also
running really well on a variety of other SVR4 systems (e.g. i386, i860,
m88k) due to my work, I don't think that the boys at Cygnus were sticking
their corporate necks out very far in making this "promise".

>Sure, we all figured it was likely that gcc would someday be ported to
>Solaris 2.0 for SPARCstations, but, in the absence of knowing with reasonable
>certainty when, the trade-off is a $2000 one-time cost versus loss of
>developers' time and development delays if appropriate tools aren't available
>when needed.  That's easy to decide.

I have nothing against buying "insurance", but if one is going to buy
insurance against the possibility of a very unlikely event (e.g. a metorite
hitting your house) I would think that any intelligent person would at
least ask what the probability of such an event is before spending money.

>Had you made your porting successes
>more widely known, perhaps some contributors might have chosen not to
>contribute.

My porting successes (of GCC to various SVR4 systems) have been widely
known to users of GCC on SVR4/x86, SVR4/i860, and SVR4/m88k systems for
some time.  Anyone who took the time to fetch and inspect a copy of the
(freely available) GCC sources for any version since 2.0 (released quite
some time ago) would have easily been able to see that I think.

I'm sorry if you (and others) didn't know about my SVR4 porting work,
but unlike Cygnus, I spend almost all of my time actually writing code,
and almost no time writing press releases which trumpet my successes on
the net and in other forums.

>In the end, the one year's support and the guarantee were worth the risk that
>it might all be a waste of money.

A "waste of money", eh?  (You said it.  I didn't.)

>From: rfg@netcom.com (Ronald F. Guilmette)
>>Something else that struck me as being quite humorous at the time was
>>Cygnus' apparently deliberate reinforcement of the widely held belief
>>(based purely on the uninformed speculation of certain unrelated netnews
>>posters) that Solaris 2.0 would *not* be bundled with an assembler, a
>>linker, standard libraries, or header files.  ... even though *anyone* ...
>>could have easily determined ... that Solaris 2.0
>>would in fact be "bundled" with an assembler, a linker, a set of standard
>>libraries, and a nearly full complement of standard system include files.
>
>Yes, it was common knowledge, posted to various newsgroups at the time, that
>these *would* be in Solaris 2.0.  However, gcc doesn't use the Sun assembler,
>it uses GAS, and its output had better be compatible with whatever the linker
>required.  I had the impression that this was not entirely a solved problem.

To put it bluntly, you are confused.  You do not need GAS to use GCC.  Nor
do you need to use the GNU linker.  And contrary to your assertion, running
either GCC or g++ on an SVR4 system is an entirely solved problem.  If you
don't believe that, you should just ask the folks over in comp.unix.sysv386.
I'm sure they will be glad to tell you that many of them have been using
GCC under SVR4 on i386/i486 machines for quite some time.

>>They [Cygnus] also ... broke a couple of minor things, and totally disabled 
>>any possibility of using g++ on Solaris 2.0 on Sparcs.
>
>Could you elaborate on what's broken?  Also, why would anything Cygnus did
>prevent g++ from the FSF from ever working on Solaris 2.0 on SPARCs?  I would
>normally assume whatever was broken would eventually get fixed.

Richard Stallman and I worked out a very clean scheme for getting C++
file-scope object constructors/destcructors to execute at the right
times via the use of some nice features available as a standard part of
*all* SVR4 linkers (i.e. the .init and .fini sections).  Up until Cygnus
got ahold of it, this scheme was working just fine on all SVR4 systems
*including* ones based on Sparc processors.  The scheme relied on an
assumption that the `gcc' driver program would link your programs
with certain additional .o files (i.e. crtbegin.o and crtend.o) which
are both derived from a file I wrote called crtstuff.c.

For most GCC confiugurations which target some SVR4 environment, the gcc
driver program *does* cause these files to be linked into your program.
For reasons which are not apparent however, Cygnus changed the solaris
configuration such that these critical files DO NOT get linked in.  Their
only explanation for doing this was a one line comment which they added
to the `spc-sol2.h' file (which I originally wrote) saying that "we do not
yet support g++ on solaris" (or words to that effect).

>On behalf of hackers, developers, and project managers everywhere, I'd like
>to thank you (and everyone else that's been involved, whoever they may be)
>for any and all contributions toward getting gcc to compile SPARC code for
>Solaris 2.0.

OK.  I appreciate your thanks, but how about sending me a $2000 check also?
It's the least you can do.

Newsgroups: comp.sys.sun.misc