Xref: utzoo comp.lang.c++:4880 gnu.g++.bug:931 Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!purdue!ames!henry.jpl.nasa.gov!elroy.jpl.nasa.gov!ucla-cs!uci-ics!news From: schmidt@zola.ics.uci.edu (Doug Schmidt) Newsgroups: comp.lang.c++,gnu.g++.bug Subject: Re: Questions about "Free Software Foundation" (long) Message-ID: <1989Sep30.042403.10735@paris.ics.uci.edu> Date: 30 Sep 89 04:24:03 GMT References: <980@mrsvr.UUCP> <6590268@hplsla.HP.COM> <6602@thor.acc.stolaf.edu> <9741@thorin.cs.unc.edu> Sender: news@paris.ics.uci.edu (Network News) Reply-To: schmidt@zola.ics.uci.edu (Doug Schmidt) Followup-To: comp.lang.c++ Organization: University of California, Irvine - Dept of ICS Lines: 49 In article <9741@thorin.cs.unc.edu>, tuck@jason (Russ Tuck) writes: >Until g++ 1.36 changed the way it links programs, this made sense to me. >In effect, it says there's no copyleft on your executable unless you >explicitly link in something copylefted (like libg++.a). > >However, g++ 1.36 now requires "-lg++" to link ANY program. So the above >rules now make it impossible to use g++ without making the executable >copylefted. (g++ compiles "main()" to include a call to "___main()", >which is contained in libg++.a.) > >I consider this a bug in g++, or a dramatic policy change. It is a policy change, but not in the direction you imply above. You are referring, of course, to the gnulib3.c file with the beta release of g++ 1.36. Please look at the file right now (I assume you've got access to it, or you wouldn't be writing this ;-)). Note how this file differs from most of the other libg++ files. In fact, it looks much like the gnulib.c and gnulib2.c from the gcc release, in that it doesn't contain a copyright notice at the top. This omission means that linking with the small `compiler-helper' functions declared in this file does *not* by itself bring the executable under the copyleft (the same may not hold for other libg++ files...). In fact, certain changes to g++ 1.36 (e.g., omitting the need for a special crt0.o file) specifically mean that you *can* use the g++ compiler (and its small helper functions in the gnulib[23]?.c files) without necessarily bringing the entire program under the copyleft (assuming, of course, that you don't include the copylefted libraries from libg++, etc.). The situation described in the previous paragraph was not true with previous releases g++. That is why I said above that there was a policy change, but not in the direction you implied! I know at this point that Jim Adcock will step in and say that this whole g++/libg++ library situation is unduly confusing. I agree with him. I hope that my explanation has helped shed a little light on an often easily mis-understood issue. Doug -- schmidt@ics.uci.edu (ARPA) | Per me si va nella citta' dolente. office: (714) 856-4043 | Per me si va nell'eterno dolore. | Per me si va tra la perduta gente. | Lasciate ogni speranza o voi ch'entrate.