Message-ID: From: "Andris Pavenis" To: djgpp-workers AT delorie DOT com Date: Thu, 28 Jan 1999 17:49:59 +0200 MIME-Version: 1.0 Content-type: Multipart/Mixed; boundary=Message-Boundary-20012 Subject: Re: Templates, namespaces CC: "Mark E." In-reply-to: <3.0.6.32.19990128062943.00814b20@pop.netaddress.com> References: <16743 DOT 990127 AT bspu DOT unibel DOT by> X-mailer: Pegasus Mail for Win32 (v3.01d) Reply-To: djgpp-workers AT delorie DOT com --Message-Boundary-20012 Content-type: text/plain; charset=US-ASCII Content-transfer-encoding: 7BIT Content-description: Mail message body On 28 Jan 99, at 6:29, Paul Derbyshire wrote: > At 05:50 PM 1/27/99 +0200, you wrote: > >EGCS 1.1 has support for namespaces, and it works good enough. > >Unfortunately, EGCS has bugs in exception handling so it is unusable > >for C++ programing. > > **********. They'd just gotten exception handling *fixed*... any > estimate on when the bugs'll be fixed? What about template instantiation, > with which GCC 2.8.1 has major problems? I don't think such messages don't help anybody. I'm moving discussion to djgpp- workers. Anyway there is one interesting thing with STL I should mention. Version of collect2.exe with patches from Mark E. sometimes fails to recompile source and resolve template problems. About a week ago I built egcs-2.93.02 19990117 snapshot for DJGPP (for collect2 I simply transfered these patches, I had to do that manually as patch failed) Now I see that now finally collect2 works Ok. I tried to copy this version of collect2.exe to egcs-1.1.1 directory and now it seems to work also there (original collect2 from gcce111b.zip failed to do that) Of course fragments from development snapshots should not released to general public. Unfortunately I tested this after I already have deleted sources of egcs-19990117. However I kept patches I applied for earlier snapshot (I'm using the same approach as before: big script that patches egcs sources for building for DJGPP) Perhaps I'll try to reproduce this later with some snapshot. But for now I'm giving links to 2 files: http://www.lanet.lv/~pavenis/as-990120-bfd.exe GNU Assembler from 20th January binutils snapshot built as BFD assembler (I cannot do that with binutils-2.9.1 as I'm getting broken executable). Exceptions support is mostly Ok in egcs-1.1.1 when this binary is used instead of one from binutils-2.8.1 or 2.9.1. I should thank Lazlo Molnar for finding real source of problems with C++ exceptions. http://www.lanet.lv/~pavenis/collect2.exe Colect2.exe from my DJGPP build of egcs-19990117. Please test whether it solves template instantiation problems in STL (when -frepo is being used). At least one example which failed with collect2 from gcce111b.zip now builds. If this all works Ok seems that 2 major problems with egcs-1.1.1 are solved. I'm including test example for -frepo Andris --Message-Boundary-20012 Content-type: text/plain; charset=US-ASCII Content-disposition: inline Content-description: Attachment information. The following section of this message contains a file attachment prepared for transmission using the Internet MIME message format. If you are using Pegasus Mail, or any another MIME-compliant system, you should be able to save it or view it from within your mailer. If you cannot, please ask your system administrator for assistance. ---- File information ----------- File: Makefile Date: 28 Jan 1999, 17:06 Size: 483 bytes. Type: Text --Message-Boundary-20012 Content-type: Application/Octet-stream; name="Makefile"; type=Text Content-disposition: attachment; filename="Makefile" all: ropetest.exe ropetest.cc: rm -f ropetest.cc echo '#include ' >>ropetest.cc echo '' >>ropetest.cc echo 'rope xx;' >>ropetest.cc echo '' >>ropetest.cc echo 'int main (void) { return 0; }' >>ropetest.cc ropetest.exe: ropetest.o gcc -save-temps -v ropetest.o -lstdcxx -o ropetest.exe ropetest.o: ropetest.cc gcc -save-temps -v -O3 -c -frepo -IC:/DJGPP/LANG/CXX ropetest.cc clean: rm -vf ropetest.o ropetest.rpo ropetest.exe ropetest.cc --Message-Boundary-20012 Content-type: text/plain; charset=US-ASCII Content-disposition: inline Content-description: Attachment information. The following section of this message contains a file attachment prepared for transmission using the Internet MIME message format. If you are using Pegasus Mail, or any another MIME-compliant system, you should be able to save it or view it from within your mailer. If you cannot, please ask your system administrator for assistance. ---- File information ----------- File: make.log Date: 28 Jan 1999, 17:49 Size: 6350 bytes. Type: Text --Message-Boundary-20012 Content-type: Application/Octet-stream; name="make.log"; type=Text Content-disposition: attachment; filename="make.log" rm -f ropetest.cc echo '#include ' >>ropetest.cc echo '' >>ropetest.cc echo 'rope xx;' >>ropetest.cc echo '' >>ropetest.cc echo 'int main (void) { return 0; }' >>ropetest.cc gcc -save-temps -v -O3 -c -frepo -IC:/DJGPP/LANG/CXX ropetest.cc Reading specs from c:/djgpp/lib/gcc-lib/djgpp/egcs-291.60/specs gcc version egcs-2.91.60 19981201 (egcs-1.1.1 release) c:/djgpp/lib/gcc-lib/djgpp/egcs-291.60/cpp.exe -lang-c++ -v -IC:/DJGPP/LANG/CXX -isystem c:/djgpp/bin/include -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=91 -Dunix -Di386 -DGO32 -DMSDOS -DDJGPP=2 -D__unix__ -D__i386__ -D__GO32__ -D__MSDOS__ -D__DJGPP__=2 -D__unix -D__i386 -D__GO32 -D__MSDOS -D__DJGPP=2 -Asystem(unix) -Asystem(msdos) -Acpu(i386) -Amachine(i386) -D__EXCEPTIONS -D__OPTIMIZE__ ropetest.cc ropetest.ii GNU CPP version egcs-2.91.60 19981201 (egcs-1.1.1 release) (80386, BSD syntax) #include "..." search starts here: #include <...> search starts here: C:/DJGPP/LANG/CXX c:/djgpp/contrib/grx23/include c:/djgpp/lang/cxx c:/djgpp/lib/gcc-lib/djgpp/egcs-291.60/include c:/djgpp/include End of search list. c:/djgpp/lib/gcc-lib/djgpp/egcs-291.60/cc1plus.exe ropetest.ii -quiet -dumpbase ropetest.cc -O3 -version -frepo -o ropetest.s GNU C++ version egcs-2.91.60 19981201 (egcs-1.1.1 release) (djgpp) compiled by GNU C version egcs-2.91.60 19981201 (egcs-1.1.1 release). In file included from C:/DJGPP/LANG/CXX/stl_rope.h:2107, from C:/DJGPP/LANG/CXX/rope:26, from ropetest.cc:1: C:/DJGPP/LANG/CXX/ropeimpl.h:1085: warning: decimal integer constant is so large that it is unsigned c:/djgpp/bin/as.exe -o ropetest.o ropetest.s gcc -save-temps -v ropetest.o -lstdcxx -o ropetest.exe Reading specs from c:/djgpp/lib/gcc-lib/djgpp/egcs-291.60/specs gcc version egcs-2.91.60 19981201 (egcs-1.1.1 release) c:/djgpp/lib/gcc-lib/djgpp/egcs-291.60/collect2.exe -o ropetest.exe c:/djgpp/lib/crt0.o -Lc:/djgpp/lib -Lc:/djgpp/lib/gcc-lib/djgpp/egcs-291.60 -Lc:/djgpp/bin -Lc:/djgpp/lib ropetest.o -lstdcxx -lgcc -lc -lgcc -Tdjgpp.djl collect: recompiling ropetest.cc Reading specs from c:/djgpp/lib/gcc-lib/djgpp/egcs-291.60/specs gcc version egcs-2.91.60 19981201 (egcs-1.1.1 release) c:/djgpp/lib/gcc-lib/djgpp/egcs-291.60/cpp.exe -lang-c++ -v -IC:/DJGPP/LANG/CXX -isystem c:/djgpp/bin/djgpp/egcs-291.60/include -isystem c:/djgpp/bin/include -isystem c:/djgpp/lib/gcc-lib/djgpp/egcs-291.60/include -isystem c:/djgpp/lib/gcc-lib/djgpp/include -isystem /usr/lib/gcc/djgpp/egcs-291.60/include -isystem /usr/lib/gcc/djgpp/include -isystem c:/djgpp/lib/gcc-lib/djgpp/egcs-291.60/$djdir/djgpp/bin/djgpp/egcs-291.60/include -isystem c:/djgpp/lib/gcc-lib/djgpp/egcs-291.60/$djdir/djgpp/bin/include -isystem c:/djgpp/bin/djgpp/egcs-291.60/include -isystem c:/djgpp/bin/include -isystem c:/djgpp/bin/include -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=91 -Dunix -Di386 -DGO32 -DMSDOS -DDJGPP=2 -D__unix__ -D__i386__ -D__GO32__ -D__MSDOS__ -D__DJGPP__=2 -D__unix -D__i386 -D__GO32 -D__MSDOS -D__DJGPP=2 -Asystem(unix) -Asystem(msdos) -Acpu(i386) -Amachine(i386) -D__EXCEPTIONS -D__OPTIMIZE__ ropetest.cc ropetest.ii GNU CPP version egcs-2.91.60 19981201 (egcs-1.1.1 release) (80386, BSD syntax) #include "..." search starts here: #include <...> search starts here: C:/DJGPP/LANG/CXX c:/djgpp/lib/gcc-lib/djgpp/egcs-291.60/include c:/djgpp/contrib/grx23/include c:/djgpp/lang/cxx c:/djgpp/lib/gcc-lib/djgpp/egcs-291.60/include c:/djgpp/include End of search list. c:/djgpp/lib/gcc-lib/djgpp/egcs-291.60/cc1plus.exe ropetest.ii -quiet -dumpbase ropetest.cc -O3 -version -frepo -o ropetest.s GNU C++ version egcs-2.91.60 19981201 (egcs-1.1.1 release) (djgpp) compiled by GNU C version egcs-2.91.60 19981201 (egcs-1.1.1 release). In file included from C:/DJGPP/LANG/CXX/stl_rope.h:2107, from C:/DJGPP/LANG/CXX/rope:26, from ropetest.cc:1: C:/DJGPP/LANG/CXX/ropeimpl.h:1085: warning: decimal integer constant is so large that it is unsigned c:/djgpp/bin/as.exe -o ropetest.o ropetest.s collect: relinking collect: recompiling ropetest.cc Reading specs from c:/djgpp/lib/gcc-lib/djgpp/egcs-291.60/specs gcc version egcs-2.91.60 19981201 (egcs-1.1.1 release) c:/djgpp/lib/gcc-lib/djgpp/egcs-291.60/cpp.exe -lang-c++ -v -IC:/DJGPP/LANG/CXX -isystem c:/djgpp/bin/djgpp/egcs-291.60/include -isystem c:/djgpp/bin/include -isystem c:/djgpp/lib/gcc-lib/djgpp/egcs-291.60/include -isystem c:/djgpp/lib/gcc-lib/djgpp/include -isystem /usr/lib/gcc/djgpp/egcs-291.60/include -isystem /usr/lib/gcc/djgpp/include -isystem c:/djgpp/lib/gcc-lib/djgpp/egcs-291.60/$djdir/djgpp/bin/djgpp/egcs-291.60/include -isystem c:/djgpp/lib/gcc-lib/djgpp/egcs-291.60/$djdir/djgpp/bin/include -isystem c:/djgpp/bin/djgpp/egcs-291.60/include -isystem c:/djgpp/bin/include -isystem c:/djgpp/bin/include -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=91 -Dunix -Di386 -DGO32 -DMSDOS -DDJGPP=2 -D__unix__ -D__i386__ -D__GO32__ -D__MSDOS__ -D__DJGPP__=2 -D__unix -D__i386 -D__GO32 -D__MSDOS -D__DJGPP=2 -Asystem(unix) -Asystem(msdos) -Acpu(i386) -Amachine(i386) -D__EXCEPTIONS -D__OPTIMIZE__ ropetest.cc ropetest.ii GNU CPP version egcs-2.91.60 19981201 (egcs-1.1.1 release) (80386, BSD syntax) #include "..." search starts here: #include <...> search starts here: C:/DJGPP/LANG/CXX c:/djgpp/lib/gcc-lib/djgpp/egcs-291.60/include c:/djgpp/contrib/grx23/include c:/djgpp/lang/cxx c:/djgpp/lib/gcc-lib/djgpp/egcs-291.60/include c:/djgpp/include End of search list. c:/djgpp/lib/gcc-lib/djgpp/egcs-291.60/cc1plus.exe ropetest.ii -quiet -dumpbase ropetest.cc -O3 -version -frepo -o ropetest.s GNU C++ version egcs-2.91.60 19981201 (egcs-1.1.1 release) (djgpp) compiled by GNU C version egcs-2.91.60 19981201 (egcs-1.1.1 release). In file included from C:/DJGPP/LANG/CXX/stl_rope.h:2107, from C:/DJGPP/LANG/CXX/rope:26, from ropetest.cc:1: C:/DJGPP/LANG/CXX/ropeimpl.h:1085: warning: decimal integer constant is so large that it is unsigned c:/djgpp/bin/as.exe -o ropetest.o ropetest.s collect: relinking c:/djgpp/bin/stubify.exe -v ropetest.exe stubify for djgpp V2.X executables, Copyright (C) 1995 DJ Delorie stubify: ropetest.exe -> ropetest.000 -> ropetest.exe --Message-Boundary-20012--