From: "Andrew Crabtree" Newsgroups: comp.os.msdos.djgpp Subject: Need a C++ tester Date: Fri, 16 Jan 1998 14:31:06 -0800 Organization: Hewlett Packard Lines: 92 Message-ID: <69on3b$j6v$1@rosenews.rose.hp.com> NNTP-Posting-Host: ros51675cra.rose.hp.com Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Precedence: bulk While I am waiting for the goof web site to get updated to support the new release I thought I might actually try testing the C++ kit out. I was hoping someone out here would volunteer to do it. You would either need to have a ftp server I can put the file on or be able to receive a 1.7 MB mail attachment. I specifically want somebody who has code that uses some of the newer C++ features (RTTI, template, exceptions, ...) If I don't get a tester than I will put out the PG++ kit untested. Contact me by email if interested. Ideally you'd be able to get to it over this weekend so I could distribute it on goof next week. Andy Here's some info on it from the readme. The additional C++ archive contains \bin\cc1plus.exe - The Pentium Optimizing GNU C++ parser \bin\gxx.exe - Optional Replacement Front end for C++ compilation \lib\libstdcx.a - C++ Library \lib\libio.a - C++ Library \lib\libiostr.a - C++ Library \lib\libibert.a - Library, probably not used by anything but included anyway \include\math.h - Fix struct exception problem \include\libm\math.h - Fix struct exception problem According to the egcs release notes, if you want exception handling to work on a x86 target (that DJGPP), then you MUST use binutils 2.8.1 or later. II) C++ Installation Notes 1) The gxx.exe that comes with pg++ is completely different than the gxx.exe that comes with djgpp. You can actually still use the original gxx.exe if you want, as the optimizing changes come from the underlying cc1plus.exe. If you want to use the new gxx.exe try the following. Copy the [gcc] section in your djgpp.env to a new section and call it [gxx]. 2) C++ comes with a replacement math.h to work around the struct exception problem. It should be identical to the original djgpp version in every other way. Specifically struct exception { is changed to #ifdef __cplusplus #define exception __math_exception #endif struct exception { #ifdef __cplusplus #undef exception #endif Since exception is a special work in C++. This is the DJDEV 2.01 math.h. If you are using a 2.02 alpha or later you may need to manually fix math.h (or it could already be fixed). 3) The C++ support in gcc has changed substantially since 2.7.2. I am not a C++ user and I do not know the nature of all of the changes. I do know that templates are supposed to be better supported, as well as RTTI. Also exception handling is improved (and is now enabled by default, -fno-exceptions turns it off). I have provided what I hope is all the necessary libs. libio.a libstdcx.a (libstdc++.a in unix) libiostr.a (libiostream in unix) libibert.a (libiberty.a in unix, I don't this this is needed, or even a c++ file but I'm including it anyway) 4) I do not include a new libgpp.a. My understanding is that this should not be needed anymore. I also do not include the collect2 front end that aides in template repository. It relies on fork to work and dj's posix support does not include fork currently.