Issue 30891 - W32 build fails in sal / autodoc
Summary: W32 build fails in sal / autodoc
Status: CLOSED FIXED
Alias: None
Product: porting
Classification: Code
Component: code (show other issues)
Version: current
Hardware: All All
: P1 (highest) Trivial (vote)
Target Milestone: OOo 2.0
Assignee: caolanm
QA Contact: issues@porting
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-06-29 21:21 UTC by quetschke
Modified: 2004-08-23 13:57 UTC (History)
3 users (show)

See Also:
Issue Type: DEFECT
Latest Confirmation in: ---
Developer Difficulty: ---


Attachments
Patch for solver/680/wntmsci8.pro/inc/stl/stl/_hash_*.h (4.07 KB, patch)
2004-07-01 19:24 UTC, quetschke
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this issue.
Description quetschke 2004-06-29 21:21:45 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
Comment 1 Martin Hollmichel 2004-06-30 08:11:17 UTC
grrr, German compiler messages, completly ununderstandable ;).

reassign to caolan.
Comment 2 caolanm 2004-06-30 09:08:07 UTC
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>

?
Comment 3 quetschke 2004-06-30 13:51:59 UTC
> 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.
Comment 4 quetschke 2004-06-30 18:00:46 UTC
vq->cmc: As you requested: Same error after fresh checkout.
Comment 5 quetschke 2004-06-30 19:20:05 UTC
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.
Comment 6 sander_traveling 2004-07-01 16:12:47 UTC
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
Comment 7 quetschke 2004-07-01 19:23:18 UTC
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.
Comment 8 quetschke 2004-07-01 19:24:43 UTC
Created attachment 16233 [details]
Patch for solver/680/wntmsci8.pro/inc/stl/stl/_hash_*.h
Comment 9 caolanm 2004-07-01 19:39:32 UTC
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).
Comment 10 quetschke 2004-07-02 03:54:47 UTC
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.
Comment 11 quetschke 2004-07-02 14:47:59 UTC
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)
Comment 12 caolanm 2004-07-02 18:00:19 UTC
Should be all good now again.
Comment 13 caolanm 2004-08-23 13:57:28 UTC
closing, fixed.