Apache OpenOffice (AOO) Bugzilla – Issue 30891
W32 build fails in sal / autodoc
Last modified: 2004-08-23 13:57:28 UTC
Branch: cws_src680_ooo20040704 Since the recent resync / cmc's system stl commits fails the w32-tcs/.NET2002 build with: ------------------------------ Making: ../../wntmsci8.pro/obj/bootstrap.obj guw.pl /cygdrive/c/PROGRA~1/MICROS~1.NET/Vc7/bin/cl.exe -DSAL_USE_STLPORT -Zm500 -wd4290 -wd4786 -wd4800 -Zc:forScope -GR -c -nologo -Gs -Gy -I. -I. -I../inc -I../../inc -I../../WIN/inc -I../../wntmsci8.pro/inc -I. -I/v1/cws_src680_ooo20040704/solver/680/wntmsci8.pro/inc/stl -I/v1/cws_src680_ooo20040704/solver/680/wntmsci8.pro/inc/external -I/v1/cws_src680_ooo20040704/solver/680/wntmsci8.pro/inc -I/v1/cws_src680_ooo20040704/solenv/wntmsci8/inc -I/v1/cws_src680_ooo20040704/solenv/inc -I/v1/cws_src680_ooo20040704/res -I/v1/cws_src680_ooo20040704/solver/680/wntmsci8.pro/inc/stl -I/cygdrive/c/j2sdk1.4.2_04/include/win32 -I/cygdrive/c/j2sdk1.4.2_04/include -I/cygdrive/c/PROGRA~1/MICROS~2/include -I/cygdrive/c/PROGRA~1/MICROS~1.NET/Vc7/include -I. -I../../res -I. -Zi -Fd../../wntmsci8.pro/misc/_ooo_st_cpprtl.PDB -Gd -DWNT -DWNT -DNT351 -DMSC -DM1300 -DINTEL -D_USE_NAMESPACE -D_X86_=1 -DFULL_DESK -DSTLPORT_VERSION=400 -DWINVER=0x400 -D_WIN32_IE=0x400 -D_MT -DCPPU_ENV=msci -DSUPD=680 -DPRODUCT -DNDEBUG -DPRODUCT_FULL -DOSL_DEBUG_LEVEL=0 -DOPTIMIZE -DEXCEPTIONS_OFF -DCUI -DSOLAR_JAVA -DSRC680 -DMULTITHREAD -DWIN32 -D_MT -D_DLL -DWIN32 -D_MT -D_DLL -W3 -Fo../../wntmsci8.pro/obj/bootstrap.obj /v1/cws_src680_ooo20040704/sal/rtl/source/bootstrap.cxx guw.pl /cygdrive/c/PROGRA~1/MICROS~1.NET/Vc7/bin/cl.exe @/tmp/mkb00936 bootstrap.cxx d:\v1\cws_src680_ooo20040704\solver\680\wntmsci8.pro\inc\stl\stl\_hash_map.h(53) : error C2143: Syntaxfehler : Es fehlt ';' vor '<' d:\v1\cws_src680_ooo20040704\sal\rtl\source\bootstrap.cxx(525) : Siehe Verweis auf Instantiierung der kompilierten Klassenvorlage 'rtl::hash_map<_Key,_Tp,_HashFcn,_EqualKey,_Alloc>' with [ _Key=rtl::OUString, _Tp=Bootstrap_Impl *, _HashFcn=rtl::OUStringHash, _EqualKey=_STL::equal_to<rtl::OUString>, _Alloc=sal::Allocator<rtl::OUString> ] d:\v1\cws_src680_ooo20040704\solver\680\wntmsci8.pro\inc\stl\stl\_hash_map.h(53) : error C2238: Unerwartete(s) Token vor ';' d:\v1\cws_src680_ooo20040704\solver\680\wntmsci8.pro\inc\stl\stl\_hash_map.h(56) : error C2653: '_Ht' : Keine Klasse oder Namespace d:\v1\cws_src680_ooo20040704\solver\680\wntmsci8.pro\inc\stl\stl\_hash_map.h(56) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'key_type' d:\v1\cws_src680_ooo20040704\solver\680\wntmsci8.pro\inc\stl\stl\_hash_map.h(59) : error C2653: '_Ht' : Keine Klasse oder Namespace d:\v1\cws_src680_ooo20040704\solver\680\wntmsci8.pro\inc\stl\stl\_hash_map.h(59) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner '_value_type' d:\v1\cws_src680_ooo20040704\solver\680\wntmsci8.pro\inc\stl\stl\_hash_map.h(59) : error C2501: 'rtl::hash_map<_Key,_Tp,_HashFcn,_EqualKey,_Alloc>::_value_type' : Fehlende Speicherklasse oder Typspezifizierer with [ _Key=rtl::OUString, _Tp=Bootstrap_Impl *, _HashFcn=rtl::OUStringHash, _EqualKey=_STL::equal_to<rtl::OUString>, _Alloc=sal::Allocator<rtl::OUString> ] d:\v1\cws_src680_ooo20040704\solver\680\wntmsci8.pro\inc\stl\stl\_hash_map.h(60) : error C2653: '_Ht' : Keine Klasse oder Namespace d:\v1\cws_src680_ooo20040704\solver\680\wntmsci8.pro\inc\stl\stl\_hash_map.h(61) : error C2653: '_Ht' : Keine Klasse oder Namespace d:\v1\cws_src680_ooo20040704\solver\680\wntmsci8.pro\inc\stl\stl\_hash_map.h(61) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'hasher' d:\v1\cws_src680_ooo20040704\solver\680\wntmsci8.pro\inc\stl\stl\_hash_map.h(62) : error C2653: '_Ht' : Keine Klasse oder Namespace d:\v1\cws_src680_ooo20040704\solver\680\wntmsci8.pro\inc\stl\stl\_hash_map.h(62) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'key_equal' d:\v1\cws_src680_ooo20040704\solver\680\wntmsci8.pro\inc\stl\stl\_hash_map.h(64) : error C2653: '_Ht' : Keine Klasse oder Namespace d:\v1\cws_src680_ooo20040704\solver\680\wntmsci8.pro\inc\stl\stl\_hash_map.h(64) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'size_type' d:\v1\cws_src680_ooo20040704\solver\680\wntmsci8.pro\inc\stl\stl\_hash_map.h(65) : error C2653: '_Ht' : Keine Klasse oder Namespace d:\v1\cws_src680_ooo20040704\solver\680\wntmsci8.pro\inc\stl\stl\_hash_map.h(65) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'difference_type' d:\v1\cws_src680_ooo20040704\solver\680\wntmsci8.pro\inc\stl\stl\_hash_map.h(66) : error C2653: '_Ht' : Keine Klasse oder Namespace d:\v1\cws_src680_ooo20040704\solver\680\wntmsci8.pro\inc\stl\stl\_hash_map.h(66) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'pointer' d:\v1\cws_src680_ooo20040704\solver\680\wntmsci8.pro\inc\stl\stl\_hash_map.h(67) : error C2653: '_Ht' : Keine Klasse oder Namespace d:\v1\cws_src680_ooo20040704\solver\680\wntmsci8.pro\inc\stl\stl\_hash_map.h(67) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'const_pointer' d:\v1\cws_src680_ooo20040704\solver\680\wntmsci8.pro\inc\stl\stl\_hash_map.h(68) : error C2653: '_Ht' : Keine Klasse oder Namespace d:\v1\cws_src680_ooo20040704\solver\680\wntmsci8.pro\inc\stl\stl\_hash_map.h(68) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'reference' d:\v1\cws_src680_ooo20040704\solver\680\wntmsci8.pro\inc\stl\stl\_hash_map.h(69) : error C2653: '_Ht' : Keine Klasse oder Namespace d:\v1\cws_src680_ooo20040704\solver\680\wntmsci8.pro\inc\stl\stl\_hash_map.h(69) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'const_reference' d:\v1\cws_src680_ooo20040704\solver\680\wntmsci8.pro\inc\stl\stl\_hash_map.h(71) : error C2653: '_Ht' : Keine Klasse oder Namespace d:\v1\cws_src680_ooo20040704\solver\680\wntmsci8.pro\inc\stl\stl\_hash_map.h(71) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'iterator' d:\v1\cws_src680_ooo20040704\solver\680\wntmsci8.pro\inc\stl\stl\_hash_map.h(72) : error C2653: '_Ht' : Keine Klasse oder Namespace d:\v1\cws_src680_ooo20040704\solver\680\wntmsci8.pro\inc\stl\stl\_hash_map.h(72) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'const_iterator' d:\v1\cws_src680_ooo20040704\solver\680\wntmsci8.pro\inc\stl\stl\_hash_map.h(74) : error C2653: '_Ht' : Keine Klasse oder Namespace d:\v1\cws_src680_ooo20040704\solver\680\wntmsci8.pro\inc\stl\stl\_hash_map.h(74) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'allocator_type' d:\v1\cws_src680_ooo20040704\solver\680\wntmsci8.pro\inc\stl\stl\_hash_map.h(81) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner '_M_ht' d:\v1\cws_src680_ooo20040704\solver\680\wntmsci8.pro\inc\stl\stl\_hash_map.h(81) : error C2501: 'rtl::hash_map<_Key,_Tp,_HashFcn,_EqualKey,_Alloc>::_Ht' : Fehlende Speicherklasse oder Typspezifizierer with [ _Key=rtl::OUString, _Tp=Bootstrap_Impl *, _HashFcn=rtl::OUStringHash, _EqualKey=_STL::equal_to<rtl::OUString>, _Alloc=sal::Allocator<rtl::OUString> ] d:\v1\cws_src680_ooo20040704\solver\680\wntmsci8.pro\inc\stl\stl\_hash_map.h(81) : error C2501: 'rtl::hash_map<_Key,_Tp,_HashFcn,_EqualKey,_Alloc>::_M_ht' : Fehlende Speicherklasse oder Typspezifizierer with [ _Key=rtl::OUString, _Tp=Bootstrap_Impl *, _HashFcn=rtl::OUStringHash, _EqualKey=_STL::equal_to<rtl::OUString>, _Alloc=sal::Allocator<rtl::OUString> ] d:\v1\cws_src680_ooo20040704\solver\680\wntmsci8.pro\inc\stl\stl\_hash_map.h(165) : error C2143: Syntaxfehler : Es fehlt ';' vor '<' d:\v1\cws_src680_ooo20040704\solver\680\wntmsci8.pro\inc\stl\stl\_hash_map.h(165) : error C2501: 'rtl::hash_map<_Key,_Tp,_HashFcn,_EqualKey,_Alloc>::pair' : Fehlende Speicherklasse oder Typspezifizierer with [ _Key=rtl::OUString, _Tp=Bootstrap_Impl *, _HashFcn=rtl::OUStringHash, _EqualKey=_STL::equal_to<rtl::OUString>, _Alloc=sal::Allocator<rtl::OUString> ] d:\v1\cws_src680_ooo20040704\solver\680\wntmsci8.pro\inc\stl\stl\_hash_map.h(166) : error C2334: Unerwartete(s) Token vor '{'; sichtbarer Funktionstext wird Âbersprungen d:\v1\cws_src680_ooo20040704\solver\680\wntmsci8.pro\inc\stl\stl\_hash_map.h(178) : error C2143: Syntaxfehler : Es fehlt ';' vor '<' d:\v1\cws_src680_ooo20040704\solver\680\wntmsci8.pro\inc\stl\stl\_hash_map.h(178) : error C2501: 'rtl::hash_map<_Key,_Tp,_HashFcn,_EqualKey,_Alloc>::pair' : Fehlende Speicherklasse oder Typspezifizierer with [ _Key=rtl::OUString, _Tp=Bootstrap_Impl *, _HashFcn=rtl::OUStringHash, _EqualKey=_STL::equal_to<rtl::OUString>, _Alloc=sal::Allocator<rtl::OUString> ] d:\v1\cws_src680_ooo20040704\solver\680\wntmsci8.pro\inc\stl\stl\_hash_map.h(179) : error C2334: Unerwartete(s) Token vor '{'; sichtbarer Funktionstext wird Âbersprungen d:\v1\cws_src680_ooo20040704\solver\680\wntmsci8.pro\inc\stl\stl\_hash_map.h(193) : error C2143: Syntaxfehler : Es fehlt ';' vor '<' d:\v1\cws_src680_ooo20040704\solver\680\wntmsci8.pro\inc\stl\stl\_hash_map.h(193) : error C2501: 'rtl::hash_map<_Key,_Tp,_HashFcn,_EqualKey,_Alloc>::pair' : Fehlende Speicherklasse oder Typspezifizierer with [ _Key=rtl::OUString, _Tp=Bootstrap_Impl *, _HashFcn=rtl::OUStringHash, _EqualKey=_STL::equal_to<rtl::OUString>, _Alloc=sal::Allocator<rtl::OUString> ] d:\v1\cws_src680_ooo20040704\solver\680\wntmsci8.pro\inc\stl\stl\_hash_map.h(194) : error C2334: Unerwartete(s) Token vor '{'; sichtbarer Funktionstext wird Âbersprungen d:\v1\cws_src680_ooo20040704\solver\680\wntmsci8.pro\inc\stl\stl\_hash_map.h(195) : error C2143: Syntaxfehler : Es fehlt ';' vor '<' d:\v1\cws_src680_ooo20040704\solver\680\wntmsci8.pro\inc\stl\stl\_hash_map.h(195) : error C2501: 'rtl::hash_map<_Key,_Tp,_HashFcn,_EqualKey,_Alloc>::pair' : Fehlende Speicherklasse oder Typspezifizierer with [ _Key=rtl::OUString, _Tp=Bootstrap_Impl *, _HashFcn=rtl::OUStringHash, _EqualKey=_STL::equal_to<rtl::OUString>, _Alloc=sal::Allocator<rtl::OUString> ] d:\v1\cws_src680_ooo20040704\solver\680\wntmsci8.pro\inc\stl\stl\_hash_map.h(197) : error C2334: Unerwartete(s) Token vor '{'; sichtbarer Funktionstext wird Âbersprungen d:\v1\cws_src680_ooo20040704\sal\rtl\source\bootstrap.cxx(546) : error C2664: 'rtl::hash_map<_Key,_Tp,_HashFcn,_EqualKey,_Alloc>::iterator rtl::hash_map<_Key,_Tp,_HashFcn,_EqualKey,_Alloc>::find(const rtl::hash_map<_Key,_Tp,_HashFcn,_EqualKey,_Alloc>::key_type &)' : Konvertierung des Parameters 1 von 'rtl::OUString' in 'const rtl::hash_map<_Key,_Tp,_HashFcn,_EqualKey,_Alloc>::key_type &' nicht mâ€glich with [ _Key=rtl::OUString, _Tp=Bootstrap_Impl *, _HashFcn=rtl::OUStringHash, _EqualKey=_STL::equal_to<rtl::OUString>, _Alloc=sal::Allocator<rtl::OUString> ] and [ _Key=rtl::OUString, _Tp=Bootstrap_Impl *, _HashFcn=rtl::OUStringHash, _EqualKey=_STL::equal_to<rtl::OUString>, _Alloc=sal::Allocator<rtl::OUString> ] Ursache: Konvertierung von 'rtl::OUString' in 'const rtl::hash_map<_Key,_Tp,_HashFcn,_EqualKey,_Alloc>::key_type' nicht mâ€glich with [ _Key=rtl::OUString, _Tp=Bootstrap_Impl *, _HashFcn=rtl::OUStringHash, _EqualKey=_STL::equal_to<rtl::OUString>, _Alloc=sal::Allocator<rtl::OUString> ] Kein benutzerdefinierter Konvertierungsoperator verfÂgbar, der diese Konvertierung durchfuehren kann, oder der Operator kann nicht aufgerufen werden d:\v1\cws_src680_ooo20040704\sal\rtl\source\bootstrap.cxx(546) : fatal error C1903: Weiterverarbeitung nach vorherigem Fehler nicht mâ€glich; Kompilierung wird abgebrochen. dmake: Error code 2, while making '../../wntmsci8.pro/obj/bootstrap.obj' ---* TG_SLO.MK *--- ERROR: Error 65280 occurred while making /v1/cws_src680_ooo20040704/sal/rtl/source
grrr, German compiler messages, completly ununderstandable ;). reassign to caolan.
Is bootstrap.cxx version 1.28.6.1 ? with #ifndef INCLUDED_RTL_HASHMAP_HXX #include <rtl/hash_map.hxx> #endif rather than #include <hash_map> ?
> Is bootstrap.cxx version 1.28.6.1 ? with > #ifndef INCLUDED_RTL_HASHMAP_HXX > #include <rtl/hash_map.hxx> > #endif Yes, it is. It was a clean checkout, see tinderbox for more details.
vq->cmc: As you requested: Same error after fresh checkout.
Hi Caolan, changing line 510 of bootstrap.cxx: typedef ::rtl::hash_map< back to typedef ::std::hash_map< "fixes" the compilation of bootstrap.cxx, but then sal fails in sal\rtl\source\macro.cxx with a similar error.
can we please have this reverted - or at least the rtl/hash_map chnaged ifdefed with #if 0 ...present contents... #else #include <hash_map> #endif until such time asa teh cause and fix are known? I'd rather not have a broken cws
Sander, the includes are not the problem, I guess we discovered a namespace problem in .NET. (Again, gut feeling, I have no clue of his #$%@ langage.) But see the following patch, forcing the namespace like this lets sal build to its end.
Created attachment 16233 [details] Patch for solver/680/wntmsci8.pro/inc/stl/stl/_hash_*.h
Yeah, my analysis as well was that this is a .net 2002 namespace problem. Tomorrow morning I'll revert the include and namespace changes (but leave the code cleanups that fix incorrect iterator as pointer assumption).
Hi Caolan, how about something like: -- rtl/hashmap.hxx -- #if defined(GCC) && !defined(SAL_USE_STLPORT) #include <ext/hash_map> #define _SAL_HASH_NAMESPACE rtl namespace _SAL_HASH_NAMESPACE { .. } #else #include <hash_map> #define _SAL_HASH_NAMESPACE std #endif -- rtl/hashmap.hxx -- And use something like: typedef ::_SAL_HASH_NAMESPACE::hash_map< This is ugly, but should work around the .NET problem and it rescues the original intention idea of your patch.
Hi Caolan, you reverted the rtl::hash* changes, but there are also std::slist -> rtl::slist changes that show the same problem. My build breaks in autodoc/source/display/idl/hfi_constgroup.cxx with comparable symptoms. (Propably because of: autodoc/source/inc/estack.hxx r1.2.70.1)
Should be all good now again.
closing, fixed.