STLPort 5.1 and winegcc / winelib

Gendo Ikari gendo at cox.net
Thu Dec 21 13:12:22 CST 2006


	Boaz,

	I followed you example in the files from SourceForge but I keep bumping
into an error below. I figure I am not defining something properly and I
have seen it when I was messing with StlPort 4 as well, so I was
wondering if you might know where the issue lay. 

../../stlport/stl/_threads.h:331: error: ‘pthread_spinlock_t’ does not
name a type
../../stlport/stl/_threads.h: In member function ‘void
stlp_std::_STLP_mutex_base::_M_initialize()’:
../../stlport/stl/_threads.h:332: error: ‘_M_lock’ was not declared in
this scope
../../stlport/stl/_threads.h:332: error: ‘pthread_spin_init’ was not
declared in this scope
../../stlport/stl/_threads.h: In member function ‘void
stlp_std::_STLP_mutex_base::_M_destroy()’:
../../stlport/stl/_threads.h:333: error: ‘_M_lock’ was not declared in
this scope
../../stlport/stl/_threads.h:333: error: ‘pthread_spin_destroy’ was not
declared in this scope
../../stlport/stl/_threads.h: In member function ‘void
stlp_std::_STLP_mutex_base::_M_acquire_lock()’:
../../stlport/stl/_threads.h:345: error: ‘_M_lock’ was not declared in
this scope
../../stlport/stl/_threads.h:345: error: ‘pthread_spin_lock’ was not
declared in this scope
../../stlport/stl/_threads.h: In member function ‘void
stlp_std::_STLP_mutex_base::_M_release_lock()’:
../../stlport/stl/_threads.h:346: error: ‘_M_lock’ was not declared in
this scope
../../stlport/stl/_threads.h:346: error: ‘pthread_spin_unlock’ was not
declared in this scope
winegcc: g++ failed.
make: *** [obj/winegcc/so/dll_main.o] Error 2


On Tue, 2006-12-19 at 14:38 +0200, Boaz Harrosh wrote:
> gendo at cox.net wrote:
> > I was wondering if anyone had tried STLPort 5 with winelib. From searching the archives it seems you need to swap out gcc/c++ for winegcc/wineg++ and pass the -mno-cygwin option. Doing that gives me these errors. 
> >
> > make -f gcc.mak all
> >
> > wineg++ -pthread -mno-cygwin -fexceptions -fident  -fPIC -O2 -fuse-cxa-atexit  -D_REENTRANT -D_GNU_SOURCE -I../../stlport  -c -o obj/gcc/so/dll_main.o ../../src/dll_main.cpp
> > /usr/include/../include/stdlib.h:469: error: expected ‘;’ before ‘*’ token
> > /usr/include/../include/stdlib.h:470: error: expected ‘;’ before ‘*’ token
> > /usr/include/../include/stdlib.h:471: error: expected ‘;’ before ‘*’ token
> > /usr/include/../include/stdlib.h:475: error: expected ‘;’ before ‘*’ token
> > /usr/include/../include/stdlib.h:479: error: ‘int32_t’ has not been declared
> > winegcc: g++ failed.
> > make: *** [obj/gcc/so/dll_main.o] Error 2
> >
> > Anyway these are probably from grabbing the system headers which I have read you should not have happen, but if I try to use a -isystem/usr/include/wine/msvcrt or -Isystem/usr/include/wine/msvcrt and -nostdinc++ you then get tons of errors about the stl headers missing exception, cstring, etc. I was wondering if anyone had any thoughts or ideas on how to get this compiled so it is usable is porting applications.
> >
> > Thanks
> >
> >
> >
> >   
> look at, and download from: http://sourceforge.net/projects/onesource/
> (If you use KDE it has a phantom folder inside watch out)
> 
> You will see an STLport folder and a wine\include\msvcrt folder and also
> the Makefiles.
> This is all very old, pre-winegcc. STLPort 4.6.x, but the principle is
> there. A wine.mac for STL to compile over msvcrt from wine, a config.h
> or what ever it is I can't remember. And the most important is
> "typeinfo" and "new" header files in wine/include/msvcrt.
> 
> I can hardly remember all the details but in principle. Configure
> STLport to use all it's internal implementations (see wine
> stlport-config files inside). And like you tried, don't let GCC use any
> of it's headers. Than the only missing headers will be "typeinfo" and
> "new". Also I think I had to play with include path a bit, or put some
> headers in stlport/include that include other headers of same name from
> wine. It did work at the end, let the compiler guide you. Also look back
> in 2004/2005 archives I remember I had a much more detailed description
> of what to do exactly. Search for "stlport". (You are not the first one
> that asks)
> 
> Please note:
> - wine headers are very old, use new wine headers with what ever is
> missing from my zip file.
> - the "typeinfo" and "new" files are basically the GPLed files from GCC
> a bit modifies so they compile. See if you need to do it again to newer
> GCC files, what ever the GCC version you have.
> - Some more headers can be found at msvc/include folder that had a bit
> of magic to glue every thing together, but that was more for MFC and ATL
> stuff, I'm not sure STLport needed any of that. I think you need MBCS
> defined for msvcrt to have all that STLPort needs.
> 
> Free Life
> Boaz
> 
> 




More information about the wine-devel mailing list