From: SourceForge.net <no...@so...> - 2004-03-04 18:44:40
|
Support Requests item #887177, was opened at 2004-01-29 18:46 Message generated for change (Comment added) made by kidkat You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=202435&aid=887177&group_id=2435 Category: None Group: None Status: Open Priority: 8 Submitted By: Oliver Stoeneberg (kidkat) Assigned to: Earnie Boyd (earnie) Summary: Cannot build projects using STLPort Initial Comment: I tried to build a project, that utilizes STLPort with MinGW and I always got into an endless loop with some standard includes like "stddef.h", "stdarg.h" and "string.h". Is there a way to use STLPort with MinGW? ---------------------------------------------------------------------- >Comment By: Oliver Stoeneberg (kidkat) Date: 2004-03-04 18:30 Message: Logged In: YES user_id=591019 I checked with gcc -v and there are no other include directories add to the default ones I have to use: -I"C:/MinGW_3.3.1/include/c++" -I"C:/MinGW_3.3.1/include/c++/3.3.1/mingw32" -I"C:/MinGW_3.3.1/include/c++/3.3.1/backward" -I"C:/MinGW_3.3.1/include" -I"c:/STLport-4.6.1/stlport" I also tried with -nostdinc, but then I get following: /STLport-4.6.1/stlport/cstddef C:\Dev-Cpp\Projects\rblcheck\c ../3.3.1/cstddef: No such file or directory. Which makes sense, because I don't have the include directory anymore. The next errors are the ones with the missing x_t vars and then it doesn't find anonther include (cstdlib) etc. I tried something else: I renamed those includes with the RC_INVOKED and #include_next, so it doesn't find them to include them and it worked. It also works, when I change the code from include to include_next in the STLPort, where it includes the stddef.h and cstddef. I don't know how to proceed here, it's obvious the RC_INVOKED guards cause this. ---------------------------------------------------------------------- Comment By: Earnie Boyd (earnie) Date: 2004-03-04 12:59 Message: Logged In: YES user_id=15438 You don't want to define RC_INVOKED. It is defined automatically within windres which is the GCC "Resource Compiler". RC_INVOKED eliminates the pieces of the header that windres doesn't parse, e.g.: function declarations. As for your endless loop of include_next, I don't know the answer. I expect that the ordering of include directories that GCC has been told to use is causing the problem. Try ``make CC='gcc -v'' and see if you can determine what directories are being searched for the include files. Then eliminate the -I paths that are not correct. I would also try a --nostdinc switch on the compile to see if that helps. Earnie ---------------------------------------------------------------------- Comment By: Oliver Stoeneberg (kidkat) Date: 2004-03-03 23:08 Message: Logged In: YES user_id=591019 OK, here is what I posted at the STLPort forums after looking into it again: I tried to compile a project with STLPort under Dev-C++. Dev-C++ used the MinGW enviorment as compiler. I didn't use the one, that comes with it (3.2.3), but made my own one. I set up my MinGW enviorment this way: - installed MinGW 3.1.0.1 - updated it with mingw-runtime-3.2, w32api-2.5 and the core and g++ package of GCC 3.3.1 Compilation and linking without STLPort works fine doesn't cause any problems. The errors I get differ with the STLPort versions. With 4.5.3 I get the error /STLport-4.5.3/stlport/cstddef C:\Dev-Cpp\Projects\rblcheck\c ../g++-v3/cstddef: No such file or directory. I know this is a problem with the include/c++/<versionumber> include directory of the GCC3.x and/or MinGW and I know it is fixed with a later version of the stl_gcc.h. With 4.6.1 I get the following problem 41 c:\STLport-4.6.1\stlport\stddef.h:23 #include nested too deeply It's an endless loop of stlport/stddef.h and include/stddef.h including each other. If you open include/stddef.h of MinGW you see, that it just does an #include_next<stddef.h>. You can fix that by just defining RC_INVOKED in your project. But after that I get errors, that various xxx_t var aren't found (ptrdiff_t, size_t etc.) and I am now quite stuck there. Any suggestions here? And what is RC_INVOKED for? ---------------------------------------------------------------------- Comment By: Oliver Stoeneberg (kidkat) Date: 2004-02-16 13:53 Message: Logged In: YES user_id=591019 OK, I know updated to GCC 3.3.1 (installed g++ and core package over MinGW 3.1.0.1), win32api 2.5 and mingw-runtime 3.2. I don't get the include errors anymore, but I still can 't compile it. It says now, taht it can't find the "cstddef" in inluded in the STLport "cstddef". The strange thing is, that it looks in the folder "../gxx-v3". See the error: 33 P:\cs3_mail-2.1.0.2\dev\extlib\stl\stlport\cstddef ../g++-v3/cstddef: No such file or directory. ---------------------------------------------------------------------- Comment By: Earnie Boyd (earnie) Date: 2004-02-13 18:25 Message: Logged In: YES user_id=15438 Here is the blurb from the mingw-dvlpr list: <blurb> 1) Can we claim GCC is now fixed? No . There are no RC_INVOKED guards in gcc's headers.. 2) Should we guard multiple inclusions? No. Not stddef.h anyway. It needs to be included multiple times to get different typedefs. See GCC's stddef.h. I don't think the bug reported is actually related to #include_next, but without the output of gcc -E -H I'm guessing. There used to be a bug in 3.1 or 3.2 with using namespaces -- resulting in stack overflow as it cycled through recursive namespace declarations. That looked like a preprocessor bug but was actually a bug in cc1plus.exe (gcc -E worked fine, gcc -S didn't) </blurb> ---------------------------------------------------------------------- Comment By: Oliver Stoeneberg (kidkat) Date: 2004-02-13 18:02 Message: Logged In: YES user_id=591019 Well, yes. I didn't take a look a google form some MinGW projects using STLPort and finding a workaround. I thought you might came back with another comment after the dev discussion, that you mentioned. I might take another look at it soon, but it wasn't high priority for me getting it working, but it will be soon. ---------------------------------------------------------------------- Comment By: Oliver Stoeneberg (kidkat) Date: 2004-02-13 18:02 Message: Logged In: YES user_id=591019 Well, yes. I didn't take a look a google form some MinGW projects using STLPort and finding a workaround. I thought you might came back with another comment after the dev discussion, that you mentioned. I might take another look at it soon, but it wasn't high priority for me getting it working, but it will be soon. ---------------------------------------------------------------------- Comment By: Earnie Boyd (earnie) Date: 2004-02-13 12:36 Message: Logged In: YES user_id=15438 Are you still having problems? ---------------------------------------------------------------------- Comment By: Earnie Boyd (earnie) Date: 2004-02-02 12:50 Message: Logged In: YES user_id=15438 A simple Google search would reveal that STLPort and MinGW are being used together by others. Looking at the MinGW headers I can see that it may be possible to endlessly loop in and include of stddef.h and stdarg.h. I see that string.h includes stddef.h. The /mingw/include/stddef.h simply does an include_next <stddef.h>. The /mingw/include/stddef.h and /mingw/include/stdarg.h files are workarounds that will one day be removed. I will discuss on the developers. Earnie. ---------------------------------------------------------------------- Comment By: Oliver Stoeneberg (kidkat) Date: 2004-01-29 18:51 Message: Logged In: YES user_id=591019 I forgot to mention my configuration: Windows 2000 gcc version 3.2 (mingw special 20020817-1) GNU ld version 2.13.90 20021005 __MINGW32_VERSION 2.4 __W32API_VERSION 2.2 (note: this define is in the include/w32api.h and not in the include/win32.h as mentioned on the "Reporting bugs" page on www.mingw.org) using Dev-C++ 4.9.8.0 compiler package (http://www.bloodshed.net) ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=202435&aid=887177&group_id=2435 |