Apache OpenOffice (AOO) Bugzilla – Issue 786
STLport STL headers missing from SGI STL
Last modified: 2013-08-07 15:34:48 UTC
A lot of code in OO is using headers not in SGI STL <cstdarg> being the main one impeding work at the moment.
Created attachment 156 [details] SGI cstdarg : removes comlaints about this particular STLport header when droped in a -I
To obtain a list of all headers that dont end in .h (which would imply new STL headers): % find * -name '*xx' | xargs grep '^#include.*<[^./]*[^h]>' > find_used_stlheaders.txt (see following attachment) To find find the names of each of these headers % cut -d "<" -f 2 find_used_stlheaders.txt | cut -d ">" -f 1 | sort -u algorithm cstdarg cstddef cstdio cstdlib cstring deque exception fstream functional hash_map hash_set iostream iterator limits list list. locale map memory new ostream rope set slist stack stdexcept string typeinfo utility vector To find used STLport headers missing from /usr/include/CC (which would imply new STL headers which are not in SGI STL): % foreach file ( `cut -d "<" -f 2 find_used_stlheaders.txt | cut -d ">" -f 1 | sort -u` ) if ( ! -f /usr/include/CC/$file ) echo missing $file end missing cstdarg missing cstddef missing cstdio missing cstdlib missing cstring missing list. Who knows about the .list one, but the rest looks right. To then file the files which use these rouge files: % egrep '(cstdarg|cstddef|cstdio|cstdlib|cstring)' find_used_stlheaders.txt bridges/inc/bridges/java/jvmcontext.hxx:#include <cstdarg> // std::va_list and friends bridges/source/java_uno/java.cxx:#include <cstdarg> configmgr/source/misc/tracer.cxx:#include <cstdarg> connectivity/source/inc/java/lang/Object.hxx:#include <cstdarg> connectivity/source/drivers/jdbc/tools.cxx:#include <cstdarg> connectivity/source/drivers/odbc/OTools.cxx:#include <cstring> extensions/source/scanner/grid.cxx:#include <cstdio> extensions/source/scanner/sane.cxx:#include <cstdarg> extensions/source/javavm/jvmargs.hxx:#include <cstdarg> extensions/source/plugin/inc/plugin/unx/sysplug.hxx:#include <cstdio> extensions/source/plugin/unx/unxmgr.cxx:#include <cstdarg> extensions/source/plugin/base/evtlstnr.cxx:#include <cstdarg> extensions/source/plugin/base/nfuncs.cxx:#include <cstdarg> extensions/source/plugin/base/plcom.cxx:#include <cstdarg> extensions/source/plugin/base/service.cxx:#include <cstdarg> extensions/source/plugin/base/context.cxx:#include <cstdarg> extensions/source/plugin/base/context.cxx:#include <cstdio> extensions/source/plugin/base/manager.cxx:#include <cstdarg> sc/source/core/tool/token.cxx:#include <cstddef> setup2/jsnative/jsnative.cxx:#include <cstdarg> setup2/source/custom/jvmsetup/jvmscan.hxx:#include <cstdarg> // std::va_list and friends sfx2/source/appl/module.cxx:#include <cstdarg> sfx2/source/menu/mnumgr.cxx:#include <cstdarg> // std::va_list sj2/source/java/jnihelp.cxx:#include <cstdarg> sj2/source/jscpp/sjapplet.cxx:#include <cstdarg> stoc/source/javavm/jvmargs.hxx:#include <cstdarg> stoc/source/javaloader/javaloader.cxx:#include <cstdarg> svtools/inc/itemset.hxx:#include <cstdarg> // std::va_list and friends svtools/source/items/itemset.cxx:#include <cstdarg> svx/source/dialog/charmap.cxx:#include <cstdio> sw/source/ui/app/appenv.cxx:#include <cstdarg> sw/source/ui/app/applab.cxx:#include <cstdarg> sw/source/ui/dbui/dbmgr.cxx:#include <cstdarg> sw/source/ui/shells/textsh2.cxx:#include <cstdarg> sw/source/ui/uiview/viewprt.cxx:#include <cstdarg> sw/source/ui/wizard/wizgo2.cxx:#include <cstdarg> tools/workben/urltest.cxx:#include <cstddef> tools/workben/urltest.cxx:#include <cstdio> tools/workben/urltest.cxx:#include <cstdlib> tools/source/fsys/tdir.cxx:#include <cstdarg> tools/source/debug/debug.cxx:#include <cstdarg> ucb/workben/ucbconnector/ucbconnector.cxx:#include <cstdio> ucb/workben/ucbconnector/ucbconnector.cxx:#include <cstdlib> ucb/workben/distributor/distributor.cxx:#include <cstdio> ucb/workben/distributor/distributor.cxx:#include <cstdlib> ucb/workben/distributor/distributor.cxx:#include <cstring> ucb/source/main/ucbmain.cxx:#include <cstdio> ucb/source/main/ucbmain.cxx:#include <cstdlib> ucb/source/main/ucbmain.cxx:#include <cstring> ucb/source/main/machine.hxx:#include <cstddef> ucb/source/regexp/regexp.cxx:#include <cstddef> unoidl/backends/beurd/burdutil.cxx:#include <cstdarg> vcl/unx/inc/dtint.hxx:#include <cstdio> vcl/unx/source/app/vsound.hxx:#include <cstdarg> vcl/unx/source/app/salsys.cxx:#include <cstdio> vos/source/process.cxx:#include <cstdarg>
irix issue, sent to porting
Actually, cstdarg, etc are not STL headers - they are headers that wrap standard c header files (for example cstadarg wraps stdarg.h). The headers are specified by the C++ standard (IIRC) so I'm relatively sure they are present somewhere...
You will find them in STLport-???/stlport. I have already suggested to the SGI STL group that they added these, and if they are in the C++ standard, then its very likely they will be added soon (esp. as I will write them for free :) In the mean time can we find a location in the tree for them ?
Just a thought - what happens if you put the stlport include path just after the sgi incude path (or aletrnatively at the very end of teh incldue path?
Mayhem :) These stlport header files are significantly dependant on the rest of STLport that we would end up with two STLs, and 1 is already too many :) % cd STLport-???/stlport % grep include cstdarg * modified is included with the above copyright notice. # include <stl/_prolog.h> # include _STLP_NATIVE_CPP_C_HEADER(cstdarg) # include _STLP_NATIVE_C_HEADER(stdarg.h) # include <stl/_epilog.h>
Oh, well, so much for that suggestion then...
This issue has been raised on SGI's bug tracking system as PV 822304. For the moment I presume that, should I will remove the copyright notices, these stl files could reside in a location such as solenv/unxirxm3/inc ?
changing QA contact from bugs@ to issues@
issuezilla cleanup... closing for now - please re-open when the port usingthe sgi stlport is a current activity again
.