Apache OpenOffice (AOO) Bugzilla – Issue 1129
gcc 3.0 and libstdc++
Last modified: 2010-03-29 21:08:49 UTC
gcc 2.95.2 core dumps when used with -g . Obviously this presents a roadblock for the IRIX port as I have a binary and no way to debug it. I have some faith in gcc 3.0, and it seems to be getting around this problem. It does present a new problem in that it has moved extensions to the STL eg hash_map into <ext/hash_map> . % ls /usr/local/gcc-3.0/include/g++-v3/ext/ hash_map rope slist stl_hashtable.h hash_set ropeimpl.h stl_hash_fun.h stl_rope.h Initially I solved this by adding #if ( __GNUC__ == 3 ) #include <ext/hash_map> #else #include <hash_map> #endif I did this for cppu where gcc 2.95.2 previously failed to compile the code. However this will break usage of gcc 3.0 with other STLs such as STLport, and so cant be used. This could be solved by ensuring we have an additional #define available for each STL. This define would have to be made outside of the STL, as one can not rely on an STL header having been previously included before the define is used. The simplest solution atm is to modify the include path, and explicitly add the ext/ directory. I would hope there is a gcc 3.0 switch to provide this ... and -std=standard looks promising.
Created attachment 324 [details] Patchset adding <ext/...> - Breaks gcc 3.0 with other STLs
Well, you are free to introduce a new define that ever only exists in case of not using a "real" STL but libstdc++
Created attachment 326 [details] patchset - vos: Patch to #if __GNU_STL__ == 3 include <ext/...>
John, you don't really want to change a 1000 or so files for this? :-) Why not simply include -I $(prefix)/g++-v3/ext via the Irix unx????.mk? Or I'm missing something here? Heiner
Actually for <hash_(map|set)> its only 117 :) But ... no I dont want to ... however I found that by including -I/path/to/ext I end up with internal STL include errors, as stl headers within <ext/*> also include <ext/stl_internal> which then cant be found. However I did get this reply on gnu.g++.help, which I will look into. "It's an extension and as such not part of the S(tandard)TL, but you'd modify the specs file of gcc-3.0 or set GPLUSPLUS_INCLUDE_DIR to force g++ to look for includes in /.../ext, too."
Created attachment 333 [details] patchset - store
Created attachment 334 [details] patchset - registry
Created attachment 335 [details] patchset - idlc
Created attachment 336 [details] patchset - codemaker
Created attachment 347 [details] patchset - inet
Created attachment 348 [details] patchset - xmlscript
Created attachment 351 [details] patchset - sot
Created attachment 352 [details] patchset - rdbmaker
Created attachment 353 [details] patchset - vcl
changing QA contact from bugs@ to issues@
issuezilla cleanup plase re-op;en when the gcc3/libsdtc++ port is active again
per issue 106845 sb removed the partial irix port, so this doesn't make sense in isolation anymore