HDTenEightyP/NetNews huggingface dataset:
From: mrs@cygnus.com (Mike Stump)
Newsgroups: gnu.g++.bug
Subject: Re:  g++ 2.1 bug
Date: 6 Nov 92 08:41:17 GMT
Article-I.D.: cygnus.9211060841.AA02124
Distribution: gnu
Organization: GNUs Not Usenet

This problem has been fixed, and should not exist in the next release
of gcc.

You can assume that we recieve the bug reports in general.  You can
verify it by checking the g++ bug reports in:

        mizar.docs.uu.se:/ftp/pub/gnu/g++.bugs

or other machines that carry it.  (If others know of other machines,
please let me know, and I can update my list.)

In the future, it will probably be called g++-bugs.tar.Z, and will
have the bugs broken down into usful groups.

> Date: Tue, 11 Aug 92 19:31:10 BST
> Message-Id: <2663.9208111831@garay.dcs.ed.ac.uk>
> From: Rik <ret@dcs.ed.ac.uk>
> To: bug-gcc@prep.ai.mit.edu

> Hi again,
>         I don't know whether or not you received my last bug
> report, anyway here is another one.

> >From the C++ reference manual r.14.7 (Friends) :

> template<class T> class task {
>    friend task<T>* preempt(task<T>*) ;
> };

> template<class T> task<T>* preempt(task<T>* t) { }

> main () {
> task<int> i ;
> }

> Compiler says " parse error before > " twice on line 2.
> Take out the <T> bit, and it crashes, signal 11.
> Am I missing something again ? Please tell me if this mail got through.
Newsgroups: gnu.g++.bug
From: dcb@us-es.SEl.DE
Subject: bitfield name scope bug in gcc 2.2.2
Organization: GNUs Not Usenet
Distribution: gnu
Date: Thu, 5 Nov 1992 11:25:25 GMT

hello there,

Given the following code on Sun 4, with a derivative of GNU C++ 2.2.2

typedef int A;

struct B
{
    int A : 2;
} ;

then I get the following compiler error message

bug22.cc:6: syntax error before `:'

If I delete the ": 2", the error message goes away. Name spaces for
bitfields don't work.

This bug does not happen in GNU C++ 1.39, so it used to work once.

I am interested to find if this bug happens on other people's copies of
GNU C++ 2.2.2, or indeed GNU C++ 2.3

The specification for name spaces for C++ has been around for over two
years. What's going on ?


Regards

David C Binderman     Dept US/ESI, Bau 60, SEL-Alcatel AG, Lorenz Strasse 10,
D-7000 Stuttgart 40, Germany      dcb@us-es.sel.de   Tel: +49 711 821 3841

Newsgroups: gnu.g++.bug
From: lewis@sophists.COM
Subject: Gcc 2.3.1 has some trouble parsing ptr to function (still)
Organization: GNUs Not Usenet
Distribution: gnu
Date: Tue, 10 Nov 1992 10:45:09 GMT

/*
 * gcc 2.3.1 has trouble parsing functions returning pointers
 * to functions which return typedefs.
 *
 * Compile this code with:
 *      g++ -c test.c
 * procudes:
 *      test.c:20: parse error before `('
 */
#define qShowError      1


int (*GetOutOfMemoryProc ()) (int);        // This works

typedef int     Boolean;

#if     !qShowError
extern
#endif
Boolean (*GetOutOfMemoryProc2 ()) (int);   // Then why doesn't this?
Lewis Gordon Pringle, Jr.                                (lewis@sophists.com)


Newsgroups: gnu.g++.bug
From: mrs@cygnus.com (Mike Stump)
Subject: Re:  templates????
Organization: GNUs Not Usenet
Distribution: gnu
Date: Fri, 6 Nov 1992 08:58:39 GMT

Reports should contain actual code samples of things that don't work,
to be most effective.

Talking about code I can only guess at doesn't help me find or fix
bugs usually.

Yes, template for the most part work.  You might have been running
into static data members of templated classes problem.  I believe that
combination is still unimplemented.  A test case and I could have told
you for sure.

> Message-Id: <9207312139.AA20069@media-lab.mit.edu>
> To: bug-gcc@prep.ai.mit.edu
> Cc: cwren@media-lab.media.mit.edu
> Date: Fri, 31 Jul 92 17:39:14 -0400
> From: cwren@media-lab.media.mit.edu

> array.h:160: sorry, not implemented: non-function templates not yet supported

> trying to implement a clu-esque array as a excercise like so:

> array.h:
> template <class T> class array {
>   // rep
>  public:
>   // signals
>   // procs
> } //line 160;

> Am I hazing the compiler is some unique way - or are templates really
> unsupported?

> if they're unsupported, is there a release date for a version that does
> support them?

Newsgroups: gnu.g++.bug
From: anhaeupl@late.e-technik.uni-erlangen.DE (Bernd Anhaeupl)
Subject: g++ 2.3.1 still calls wrong overloaded function
Organization: GNUs Not Usenet
Distribution: gnu
Date: Mon, 9 Nov 1992 19:02:29 GMT

The following bug ___is____ still in gcc 2.3.1, so here is only a repost of the 
original gcc 2.2.2 bug report.  

Systems:	1.)hp9000/720 (hpux 8.07)
		2.)Sequent386 (UNIX System V Release 3.2.0 i386 - DYNIX/ptx V1.3.1)
Config:  	1.)hp720-hpux --gas (with some patches)
		2.)???? (80386, BSD syntax)
compiler input:
test.cc:
----------------------- cut here --------------------------
extern double pow(double,int*);

extern "C" {
  extern int    printf(char*,...);
  extern double pow(double, double);
}

int main()
{
        printf("pow:%g\n",pow(2.0,3.0));
        return 0;
}
----------------------- cut here --------------------------
compiler output:
1.)
-------------------------------
$ gcc -v test.cc
Reading specs from /local/cross/share/gcc-sequent386_ptx-lib/specs
gcc version 2.2.2
 /local/cross/sequent386_ptx/lib/cpp -lang-c++ -v -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -Dunix -Di386 -Di387 -D_SEQUENT_ -D__unix__ -D__i386__ -D__i387__ -D___SEQUENT___ -D__unix -D__i386 -D__i387 -D___SEQUENT_ test.cc /usr/tmp/cca08578.i
GNU CPP version 2.2.2 (80386, BSD syntax)
 /local/cross/sequent386_ptx/lib/cc1plus /usr/tmp/cca08578.i -quiet -dumpbase test.cc -version -o /usr/tmp/cca08578.s
GNU C++ version 2.2.2 (80386, BSD syntax) compiled by GNU C version 2.2.2.
test.cc: In function `int  main ()':
test.cc:10: incompatible types in argument passing
--------------------------------------

2.)
-------------------------------------
Reading specs from /users/late/gnu/lib/gcc-lib/hp720-hpux/2.2.2/specs
gcc version 2.2.2
 /users/late/gnu/lib/gcc-lib/hp720-hpux/2.2.2/cpp -lang-c++ -v -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -Dhppa -Dhp9000s800 -D__hp9000s800 -Dhp9k8 -DPWB -Dhpux -Dunix -D_HPUX_SOURCE -D__hppa__ -D__hp9000s800__ -D__hp9000s800 -D__hp9k8__ -D__PWB__ -D__hpux__ -D__unix__ -D___HPUX_SOURCE__ -D__hppa -D__hp9000s800 -D__hp9000s800 -D__hp9k8 -D__PWB -D__hpux -D__unix -D___HPUX_SOURCE test.cc /usr/tmp/cca26858.i
GNU CPP version 2.2.2 (hp9000s800)
 /users/late/gnu/lib/gcc-lib/hp720-hpux/2.2.2/cc1plus /usr/tmp/cca26858.i -quiet -dumpbase test.cc -version -o /usr/tmp/cca26858.s
GNU C++ version 2.2.2 (hp9000s800) compiled by GNU C version 2.2.2.
test.cc: In function `int  main ()':
test.cc:10: incompatible types in argument passing
--------------------------------------


It seems that the compiler wants to call pow(double,int*) instead of pow(double,double).

The bug disappears, if you move the "extern "C"{...}" block in front of the other prototype.

If somebody knows a patch for this problem please send it to me (via email!)

Bernd Anhaeupl
(anhaeupl@late.e-technik.uni-erlangen.de)


Newsgroups: gnu.g++.bug
From: jason@jarthur.claremont.edu (Jason Merrill)
Subject: seg fault in g++ 2.3.1
Organization: Harvey Mudd College, Claremont, CA 91711
Distribution: gnu
Date: Sat, 7 Nov 1992 03:54:56 GMT

This code:

template <class T> class A {}
main() {}

produces this result:

~/proj/gcc> g++ -c semi.cc
semi.cc:2: parse error before `('
gcc: Internal compiler error: program cc1plus got fatal signal 11

I know the code is wrong, but it's a common error of mine, and it shouldn't
cause the compiler to dump core.

--
Jason Merrill
jason@jarthur.claremont.edu
From: mrs@cygnus.com (Mike Stump)
Newsgroups: gnu.g++.bug
Subject: Re:  Template Trouble
Date: 6 Nov 92 08:31:02 GMT
Article-I.D.: cygnus.9211060831.AA01585
Distribution: gnu
Organization: GNUs Not Usenet

This problem has been fixed, and should not exist in the next release
of gcc.

> Date: Wed, 26 Aug 92 17:05:51 MDT
> From: sullivan@mathcom.com (S. Sullivan)
> Message-Id: <9208262305.AA00468@thurber.Mathcom.com>
> To: bug-g++@prep.ai.mit.edu

> I'm running gcc 2.2.2 on Sunos 4.1.1 on a sparc 2.

> Compiling the following file with g++ gives:

> > g++ -c -o testd.o testd.cc
> testd.cc: In function `int  main ()':
> testd.cc:9: template for method `print' doesn't match any in class `QI<int>'
> Exit 1

> Why?

> Many thanks for your help ...

> Steve Sullivan
> sullivan@mathcom.com


> ------------------ cut here -------------------------
> template <class T>
> class QI {
> public:
>   QI();
>   void print() const;
> private:
>   T item;
>   QI *next;
>   };



> template <class T>
> QI<T>::QI() {}


> template <class T>
> void QI<T>::print() const {};


> main () {
>    QI<int> alpha();
>    }
> ------------------ cut here -------------------------
Newsgroups: gnu.g++.bug
From: lewis@sophists.COM
Subject: g++ 2.3.1 template bug
Organization: GNUs Not Usenet
Distribution: gnu
Date: Tue, 10 Nov 1992 11:40:02 GMT

/*
 * Compiling this with gcc 2.3.1 as follows:
 *
 *      g++ -c Bug.cc
 *
 * produces the output:
 *
 *      Bug.cc:15: Internal compiler error 124.
 *      Bug.cc:15: Please report this to `bug-g++@prep.ai.mit.edu'.
 */
template    <class  T>  class   Array {
    public:
        Array ();
};
template    <class  T>  class   Array;  // I believe this is legal -
                                        // anyway, internal error is not
                                        // a good way to flag it if it
                                        // is not.


void f ()
{
    Array<int> a;
}
Lewis Gordon Pringle, Jr.                                (lewis@sophists.com)
From: mrs@cygnus.com (Mike Stump)
Newsgroups: gnu.g++.bug
Subject: Re:  default arguments vs templates
Date: 6 Nov 92 08:29:30 GMT
Article-I.D.: cygnus.9211060829.AA01518
Distribution: gnu
Organization: GNUs Not Usenet

This problem has been fixed, and should not exist in the next release
of gcc.

> Date: Mon, 31 Aug 92 16:14:46 EDT
> From: rtm@das.harvard.edu
> Message-Id: <9208312014.AA02681@virtual7.harvard.edu>
> To: bug-g++@prep.ai.mit.edu

> I'm running g++ 2.2.2 on a SPARCstation ELC with SunOS 4.1.2.  I want
> to have a default argument to a method of a templated class.  I think
> the following code should work, but it produces an error message.
> Repeating the default in the definition (as well as the declaration)
> fixes the error message, but section 8.2.6 in the Annotated Reference
> Manual says such repetition is illegal.

> template<class T> class b{
> private:
>     T x;
> public:
>     void Print(int x = 10);
> };

> template<class T> void
> b<T>::Print(int x) // x = 10 fixes the error message.
> {
> }

> main()
> {
>     b<int> zz;

>     zz.Print(99);
> }

> Here's the output from g++ -v:

> Reading specs from /home/glan/lib/gcc-lib/sun4/2.2.2/specs
> gcc version 2.2.2
>  /home/glan/lib/gcc-lib/sun4/2.2.2/cpp -lang-c++ -v -undef -D__GNUC__=2 -D__GNUG
> __=2 -D__cplusplus -Dsparc -Dsun -Dunix -D__sparc__ -D__sun__ -D__unix__ -D__spa
> rc -D__sun -D__unix zoid.cc /usr/tmp/cca02675.i
> GNU CPP version 2.2.2 (sparc)
>  /home/glan/lib/gcc-lib/sun4/2.2.2/cc1plus /usr/tmp/cca02675.i -quiet -dumpbase
> zoid.cc -version -o /usr/tmp/cca02675.s
> GNU C++ version 2.2.2 (sparc) compiled by GNU C version 2.2.2.
> zoid.cc: In function `int  main ()':
> zoid.cc:7: template for method `Print' doesn't match any in class `b<int>'
Newsgroups: gnu.g++.help
From: bjornw@colargol (Bjoern Wennberg)
Subject: Re: g++,libg++,groff, ISC3.0
Organization: Colargol, Trondheim College of Engineering
X-Newsreader: TIN [version 1.1 PL6]
Date: Thu, 12 Nov 92 17:26:08 GMT

Kay Schulz (kschulz@ba-stuttgart.de) wrote:
: Keywords: 
: 
: Hi ,I have some problems installing groff on an ISC3.0 machine.
: I think the problem is my libg++.
: I had problems instaling libg++ but after a while int worked.
: Now I try to install groff, but when the g++ starts to link the files
: an error arrives...
: fileno error (not found) something like that, first referenced in libbib.a
: 
: I noticed that my normal stdio.h has a macto and an extrern function
: for fileno and that the stdio in /usr/local/lib/g++-include hasnt....
: 
: But what can I do? The compiler looks for it in g++-include...
: Does anybody knows what to do?
: 
: ///**************************************************///
: ///*** kschulz@garfield.t-informatik.ba-stuttgart.de***///
: ///*** KAY					  ***///
: ///**************************************************///
: 
Hi!

fileno() is defined in stdio.h. But you have to compile with -D_POSIX_SOURCE
to get that function and link with -lc_posix.

If you have installed fixincludes, you should compile with gcc -posix
to a) define -D_POSIX_SOURCE when compiling and b) link with -lc_posix.

bjornw>
--
The sooner all the animals are dead, the sooner we'll find all their money.
Newsgroups: gnu.g++.help
From: msingh@silver.ucs.indiana.edu (The Supreme Commander)
Subject: Help with g++/CC problem
Organization: Indiana University
Date: Mon, 9 Nov 1992 16:40:51 GMT


I have a c++ program that compiles fine under the Sun CC compiler, and
I've managed to massage the code so that g++ accepts it, but I get
this linker error:
_malloc__FUl 

Obviously, it can't find the routine for this. Now, malloc is included
in the standard libraries, so this can't be the problem. 

I would appreciate any help or advice on this problem. Again, CC will
compile perfectly, so g++ must be doing something else to the code!

E-mail responses preferred, but posts are welcome too.



			...Manu
-- 
---------------------------------------------------------------------
The Supreme Commander wishes you a Supreme day. 
I'm a Magic Man, oooh, I got the magic hands, yeah...
Don't mind me, I'm just attempting to dock.
From: kschulz@ba-stuttgart.de (Kay Schulz)
Newsgroups: gnu.g++.help
Subject: g++,libg++,groff, ISC3.0
Date: 12 Nov 1992 09:20:57 GMT
Organization: ba-stuttgart.de
Distribution: world
NNTP-Posting-Host: grey.t-informatik.ba-stuttgart.de

Keywords: 

Hi ,I have some problems installing groff on an ISC3.0 machine.
I think the problem is my libg++.
I had problems instaling libg++ but after a while int worked.
Now I try to install groff, but when the g++ starts to link the files
an error arrives...
fileno error (not found) something like that, first referenced in libbib.a

I noticed that my normal stdio.h has a macto and an extrern function
for fileno and that the stdio in /usr/local/lib/g++-include hasnt....

But what can I do? The compiler looks for it in g++-include...
Does anybody knows what to do?

///**************************************************///
///*** kschulz@garfield.t-informatik.ba-stuttgart.de***///
///*** KAY					  ***///
///**************************************************///

Newsgroups: gnu.g++.help
From: eric14@bernina.ethz.ch (Eric Baltischwiler)
Subject: Request for Documentation / information
Keywords: documentation
Organization: Swiss Federal Institute of Technology (ETH), Zurich, CH
X-Newsreader: Tin 1.1 PL5
Date: Wed, 11 Nov 1992 18:38:54 GMT


Hi, I'm just unpacking the gcc2.3.1 distribution and have found very little
information on g++ and objective-C.

What documentation on these compilers and their libraries is there?  Books?

Thank you,

eric14@komsys.tik.ethz.ch


PS Anything on the net would be very helpfull, such as where to find a
FAQ list.
Newsgroups: gnu.g++.help
From: calyx.corp <calyx.corp@mixcom.mixcom.com>
Subject: distributing programs created with g++
Organization: Milwaukee Internet Xchange BBS, Milwaukee, WI U.S.A.
Distribution: usa
Date: Thu, 05 Nov 1992 23:52:45 GMT


Is it is possible to distribute programs for profit that are 
created with g++ and use the g++ libraries.  It is my understanding
that this can be done if a copyright string is included in the 
binary executable files.   It is also my understanding that this 
can be done without requiring the release of source code that 
we have created.  Is this correct?

Tom Feller

-- 
calyx.corp@mixcom.com
Newsgroups: gnu.g++.help
From: roth@feline.cs.wisc.edu (Bill Roth)
Subject: set_new_handler
Organization: U of Wisconsin Madison - Computer Sciences
Date: Thu, 12 Nov 1992 18:59:51 GMT


Is there a set_new_handler for g++ memory functions?

-- 

-------------------------------------------------------------------
Bill Roth, University of Wisconsin Computer Sciences Dept.
Internet: roth@cs.wisc.edu. BITNET: ROTH@WISCPSL. HEPNET: PSL::ROTH

Newsgroups: gnu.g++.help
From: msingh@silver.ucs.indiana.edu (The Supreme Commander)
Subject: Re: Help with g++/CC problem
Organization: Indiana University
Date: Tue, 10 Nov 1992 22:13:52 GMT


Just a quick note to thank everyone who responded to my question! I
figured it would be something simple. I still don't quite understand
why g++ is pickier than CC, but I guess that's irrelevant. 


				...Manu


-- 
---------------------------------------------------------------------
The Supreme Commander wishes you a Supreme day. 
I'm a Magic Man, oooh, I got the magic hands, yeah...
Don't mind me, I'm just attempting to dock.
Newsgroups: gnu.g++.help
From: moharil@cs.iastate.edu (Vinay Arvind Moharil)
Subject: help with gcc-2.2.2 and Motif
Organization: Iowa State University, Ames IA
Date: Fri, 6 Nov 1992 05:59:36 GMT

Hi!

I am trying to use the the X11R4 and the Motif 1.1 along with the
gnu gcc-2.2.2 C++ compiler on DEC Ultrix 4.2. I have not been able 
to compile my C++ program using this compiler as it gives me parse
errors in the X11 and the Xm header files. I had posted a similar 
problem on the net and got the suggestion that I should probably use
the XTFUNCPROTO and FUNCPROTO flags in my C++ file.

Unfortunately, even after trying the above solution, it does not seem
to be working. I am not sure if the problem is because of the prototype
declarations or something else.

I need a solution for this problem desperately. Any suggestions/comments/
solutions are greatly appreciated.

Thanx
vinay

moharil@judy.cs.iastate.edu
(515)-294-1546


Newsgroups: gnu.g++.help
From: dain@holmes.ece.uc.edu (A. Dain Samples)
Subject: `new' again
Followup-To: gnu.g++.help
Originator: dain@holmes.ece.uc.edu
Reply-To: Dain.Samples@uc.edu
Organization: University of Cincinnati
Date: Fri, 6 Nov 1992 21:33:08 GMT


My students and I are trying to implement classes with customized
`new' operators.  Consider the following code:

================================================================
class A {
  public:
    void * operator new(size_t, int p,uint *p2,uint *p3);
};

class B:A{
           int a;
           int b;
  public:
    B();  // **NOTE 1**
    

};

B::B(){}  // **NOTE 2**

main () {
  uint q1, *q2, *q3;
  int i;

  q1=sizeof(B);
  q2=(uint *)2;
  q3=(uint *)3;
  
  B *pa=new(q1,q2,q3) B;
  : // etc.
================================================================

When we compile this with g++, we get an error message on the line
marked **Note 2** that says ``too few parameters to new operator''.

However, if we remove the lines marked **Note i** -- that is, we
do not declare a constructor for derived class B, then the program
works as expected!  The new operator for base class A is invoked when
we create a B.  

1) Why should a constructor for B interfere with the invocation of the
new defined in base class A?

2) Does the constructors for a derived class intercept calls on new?

3) Have I totally missed the boat here, or does g++ implement a
totally different paradigm of constructors and `new' operators than
Borland C++?  (for which code similar to this presents no problems).
Is this paradigm written up anywhere?

Any pointers would be very much appreciated.  We can't figure out what
the compiler is expecting of us.

(A general comment on the compiler implementation: ``too few
parameters'' or ``too many parameters'' isn't really helpful as error
messages; it would help to know how many parameters were being
expected.)

Thanks!
-- 
========================================================================
A. Dain Samples, Dain.Samples@uc.edu, wk:(513)556-4783, hm:(513)771-5492
------------------------------------------------------------------------
It is so difficult to find the beginning.  Or, better, it is difficult
to begin at the beginning.  And not try to go further back.
                      -Wittgentstein (from "On Certainty")

May the background be with you.
                      -Heidegger (from "Being and Time", paraphrased)
Newsgroups: gnu.g++.help
From: cpcahil@vti.com (Conor P. Cahill)
Subject: Re: Help with g++/CC problem
Organization: Virtual Technologies Inc.
Date: Tue, 10 Nov 1992 12:43:51 GMT

In article <BxGJo4.G0z@usenet.ucs.indiana.edu>, msingh@silver.ucs.indiana.edu (The Supreme Commander) writes:
> 
> I have a c++ program that compiles fine under the Sun CC compiler, and
> I've managed to massage the code so that g++ accepts it, but I get
> this linker error:
> _malloc__FUl 

This is the symbol generated for "void malloc(unsigned long)" when it 
is not defined to be an external C function.  What you probably need
to do is add something like the following somewhere in your header
file (whereever you define malloc):

extern "C"
{
	void 	* malloc(unsigned long);
};


-- 
*** SENTINEL(tm) The ultimate Debugging Environment - email for more info ***

Conor P. Cahill              (703)430-9247            cpcahil@virtech.vti.com
Virtual Technologies, Inc.  46030 Manekin Plaza          Dulles, VA 20166 
Newsgroups: gnu.g++.help
From: edgar@ms.washington.edu (Edgar Karl Nielsen)
Subject: Does g++ require libg++
Summary: Do you need libg++ to use g++
Organization: University of Washington
X-Newsreader: TIN [version 1.1 PL6]
Date: Wed, 11 Nov 1992 07:40:40 GMT

Hi,
	Does gnu g++ require the libg++ package to be installed? My
installation of gcc2.2 seems to behave this way, but it seems strange that
the gcc documentation makes no references to this requirement. In addition,
the groff documentation says that you don't need libg++ when running gcc2.x,
only when running lesser versions. I would appreciate enlightenment on this
topic!

All opinions are my own....
---------
Edgar Nielsen						edgar@ms.washington.edu
Math Sciences Computing Center					(206) 543-6466
University of Washington,Seattle 98195
From: jbuck@forney.berkeley.edu (Joe Buck)
Newsgroups: gnu.g++.help
Subject: Re: distributing programs created with g++
Date: 6 Nov 1992 04:54:29 GMT
Organization: U. C. Berkeley
Distribution: usa
NNTP-Posting-Host: forney.berkeley.edu

In article <1992Nov05.235245.11709@mixcom.com> calyx.corp <calyx.corp@mixcom.mixcom.com> writes:
>Is it is possible to distribute programs for profit that are 
>created with g++ and use the g++ libraries.  It is my understanding
>that this can be done if a copyright string is included in the 
>binary executable files.   It is also my understanding that this 
>can be done without requiring the release of source code that 
>we have created.  Is this correct?

Another item for the FAQ.

You don't have to release your source code.  But you need to go a
lot further than just putting a copyright string into the executable.

Compiling your code with a Gnu compiler does not affect its copyright;
it is still yours.  However, in order to ship code that links in a Gnu
library such as libg++ there are certain rules you must follow.  The
rules are described in the file COPYING.LIB that accompanies gcc
distributions; it is also included in the libg++ distribution.
See that file for the exact rules.  The agreement is called the
Library Gnu Public License or LGPL.

Here's the deal: let's say that you use some version of libg++,
completely unchanged, in your software, and you want to ship only
a binary form of your code.  You can do this, but there are several
special requirements.  If you want to use libg++ but ship only object
code for your code, you have to ship source for libg++ (or ensure
somehow that your customer already has the source for the exact
version you are using), and ship your application in linkable form.
You cannot forbid your customer from reverse-engineering or extending
your program by exploiting its linkable form.

Furthermore, if you modify libg++ itself, you must provide source
for your modifications (making a derived class does not count as
modifying the library -- that is "a work that uses the library").
--
Joe Buck	jbuck@ohm.berkeley.edu
Newsgroups: gnu.g++.help