From: Rob P. <rob...@gm...> - 2005-02-22 05:46:45
|
Hi all, I've been trying to get a working gcc/g++ setup going on windows 98 using optimized binaries compiled under MSYS... some success but not there yet. Something is wrong here. (1) compiled gcc using modified gcc-3.4.2-build.sh: #!/bin/sh ../gcc-3.4.2-20040916-1/configure --with-gcc --with-gnu-ld --with-gnu-as --prefix=/mingw --oldincludedir=/mingw/include --disable-nls make CFLAGS="-march=pentium-mmx -Os -fomit-frame-pointer" CXXFLAGS="-march=pentium-mmx -mthreads -fno-omit-frame-pointer -Os" LDFLAGS=-s bootstrap ...worked fine (yay). caveats: * didn't use --enable-threads as it appeared to generate an error. * didn't apply the patch supplied on the download site (should I have???) * had to modify the Makefile in the ./gcc folder because it tried to include /usr/include and this broke stuff (fixed by changing offending line) * didn't use --source=mingw32 --target=mingw32 as this made the system try to compile 386 binaries. If I let configure find out target and source for itself it comes up with target and source as i686-pc-mingw32. I >think< this is preferable, although seeing as I am compiling on a K6-233 (pentium-mmx 586?? equivalent maybe not ??...ignorance showing through....) (2) compile the whole gmish (sp?) #!/bin/sh ../gcc-3.4.2-20040916-1/configure --with-gcc --with-gnu-ld --with-gnu-as --prefix=/mingw --oldincludedir=/mingw/include --disable-nls --enable-=languages=c,c++,f77 --disable-win32-registry --without-x --enable-hash-synchronization --enable-libstdcxx-debug make CFLAGS="-march=pentium-mmx -Os -fomit-frame-pointer" CXXFLAGS="-march=pentium-mmx -mthreads -fno-omit-frame-pointer -Os" LDFLAGS=-s bootstrap Works fine, system just about dies during libstdc++ configure script, but otherwise OK until.... make[4]: Leaving directory `/d/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/libsupc++' Making all in src make[4]: Entering directory `/d/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/src' /bin/sh ../libtool --tag CXX --mode=compile /d/tmp/gcc-3.4.2-20040916-1/gcc/xgcc -shared-libgcc -B/d/tmp/gcc-3.4.2-20040916-1/gcc/ -nostdinc++ -L/d/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/src -L/d/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/src/.libs -B/mingw/i686-pc-mingw32/bin/ -B/mingw/i686-pc-mingw32/lib/ -isystem /mingw/i686-pc-mingw32/include -isystem /mingw/i686-pc-mingw32/sys-include -I/d/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/include/i686-pc-mingw32 -I/d/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/include -I/d/tmp/gcc-3.4.2-20040916-1/libstdc++-v3/libsupc++ -O2 -march=pentium-mmx -Os -fomit-frame-pointer -march=pentium-mmx -mthreads -fno-omit-frame-pointer -Os -fno-implicit-templates -Wall -W -Wwrite-strings -Wcast-qual -fdiagnostics-show-location=once -c -o allocator.lo ../../.././libstdc++-v3/src/allocator.cc /d/tmp/gcc-3.4.2-20040916-1/gcc/xgcc -shared-libgcc -B/d/tmp/gcc-3.4.2-20040916-1/gcc/ -nostdinc++ -L/d/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/src -L/d/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/src/.libs -B/mingw/i686-pc-mingw32/bin/ -B/mingw/i686-pc-mingw32/lib/ -isystem /mingw/i686-pc-mingw32/include -isystem /mingw/i686-pc-mingw32/sys-include -I/d/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/include/i686-pc-mingw32 -I/d/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/include -I/d/tmp/gcc-3.4.2-20040916-1/libstdc++-v3/libsupc++ -O2 -march=pentium-mmx -Os -fomit-frame-pointer -march=pentium-mmx -mthreads -fno-omit-frame-pointer -Os -fno-implicit-templates -Wall -W -Wwrite-strings -Wcast-qual -fdiagnostics-show-location=once -c ../../.././libstdc++-v3/src/allocator.cc -o allocator.o In file included from d:/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/include/bits/postypes.h:46, from d:/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/include/iosfwd:50, from d:/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/include/bits/stl_algobase.h:70, from d:/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/include/memory:54, from ../../.././libstdc++-v3/src/allocator.cc:35: d:/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/include/cwchar:145: error: `::btowc' has not been declared d:/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/include/cwchar:150: error: `::fwide' has not been declared d:/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/include/cwchar:155: error: `::mbrlen' has not been declared d:/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/include/cwchar:156: error: `::mbrtowc' has not been declared d:/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/include/cwchar:157: error: `::mbsinit' has not been declared d:/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/include/cwchar:158: error: `::mbsrtowcs' has not been declared d:/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/include/cwchar:176: error: `::wcrtomb' has not been declared d:/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/include/cwchar:187: error: `::wcsrtombs' has not been declared d:/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/include/cwchar:197: error: `::wctob' has not been declared d:/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/include/cwchar:198: error: `::wmemcmp' has not been declared d:/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/include/cwchar:199: error: `::wmemcpy' has not been declared d:/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/include/cwchar:200: error: `::wmemmove' has not been declared d:/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/include/cwchar:201: error: `::wmemset' has not been declared d:/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/include/cwchar:229: error: `::wmemchr' has not been declared d:/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/include/cwchar: In function `wchar_t* std::wmemchr(wchar_t*, wchar_t, size_t)': d:/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/include/cwchar:233: error: invalid conversion from `const wchar_t*' to `wchar_t*' d:/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/include/cwchar:233: error: initializing argument 1 of `wchar_t* std::wmemchr(wchar_t*, wchar_t, size_t)' d:/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/include/cwchar: At global scope: d:/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/include/cwchar:258: error: `::wcstoll' has not been declared d:/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/include/cwchar:259: error: `::wcstoull' has not been declared d:/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/include/cwchar:266: error: `__gnu_cxx::wcstoll' has not been declared d:/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/include/cwchar:267: error: `__gnu_cxx::wcstoull' has not been declared Now I am stumped. Is there a problem with trying to compile for i686-pc-mingw32?? It would seem that this is preferable to i386* !!!?? Any assistance much appreciated. Maybe some configuration problems... Would prefer some quick hack environmental variable to pass to make to rebuilding! Thanks a lot Rob Pollock. |
From: Earnie B. <ea...@us...> - 2005-02-22 12:27:57
|
<quote who="Rob Pollock"> > Hi all, > > I've been trying to get a working gcc/g++ setup going on windows 98 > using optimized binaries compiled under MSYS... some success but not > there yet. > > Something is wrong here. > Only answering pieces of the puzzle > (1) compiled gcc using modified gcc-3.4.2-build.sh: > > #!/bin/sh > ../gcc-3.4.2-20040916-1/configure --with-gcc --with-gnu-ld --with-gnu-as > --prefix=/mingw --oldincludedir=/mingw/include --disable-nls > make CFLAGS="-march=pentium-mmx -Os -fomit-frame-pointer" > CXXFLAGS="-march=pentium-mmx -mthreads -fno-omit-frame-pointer -Os" > LDFLAGS=-s bootstrap > > ...worked fine (yay). > > caveats: > > * didn't use --enable-threads as it appeared to generate an error. > > * didn't apply the patch supplied on the download site (should I have???) > > * had to modify the Makefile in the ./gcc folder because it tried to > include /usr/include and this broke stuff (fixed by changing offending > line) > > * didn't use --source=mingw32 --target=mingw32 as this made the system > try to compile 386 binaries. If I let configure find out target and > source for itself > it comes up with target and source as i686-pc-mingw32. I >think< this > is preferable, although seeing as I am compiling on a K6-233 > (pentium-mmx 586?? equivalent maybe not ??...ignorance showing > through....) The guessed name has nothing to do with the resulting binaries, the name is just not representing the true picture. But specifying the host and target are a result of cross building with the build platform equal something other than windows which your are not doing. Not specifying the host and target will create a directory of i?86-pc-mingw32 for the target specific files and we agreed years ago that it would be confusing so we narrow the target name to just mingw32 so that the target specific directory is named mingw32 so that people don't get confused with i686-pc-mingw32 or i386-pc-mingw32 or ... not matching their systems. > > (2) compile the whole gmish (sp?) AFAIK libstdc++ has yet to be ported for windows wide character. You'll have to disable it with an appropriate configure switch. > d:/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/include/cwchar:145: > error: `::btowc' has not been declared > Earnie -- http://www.mingw.org http://sourceforge.net/projects/mingw https://sourceforge.net/donate/index.php?user_id=15438 |
From: Eric R. K. <ekr...@ba...> - 2005-02-22 18:09:49
|
Earnie Boyd wrote: >>(2) compile the whole gmish (sp?) > > > AFAIK libstdc++ has yet to be ported for windows wide character. You'll > have to disable it with an appropriate configure switch. Look at libstdc++-v3/include/c_std/std_cwchar.h in the GCC source tree: the inclusion of wchar.h is controlled by _GLIBCXX_HAVE_WCHAR_H, the injection of global wchar functions into the 'std' namespace is controlled by _GLIBCXX_USE_WCHAR_T. Seems to me like libstdc++-v3 config is defining _GLIBCXX_HAVE_WCHAR_H to 0 but is defining _GLIBCXX_USE_WCHAR_T to 1? All of the functions mentioned as not being declared are in fact declared in wchar.h, so this would seem to indicate that cwchar is not including wchar.h. -- Eric R. Krause |
From: Eric R. K. <ekr...@ba...> - 2005-02-22 22:53:09
|
Rob Pollock wrote: > * had to modify the Makefile in the ./gcc folder because it tried to > include /usr/include and this broke stuff (fixed by changing offending > line) I encountered this also, and traced the cause to the NATIVE_SYSTEM_HEADER_DIR being defined by default as /usr/include. Fixincludes should work properly if you tell 'make' to define NATIVE_SYSTEM_HEADER_DIR properly, e.g.: make ... NATIVE_SYSTEM_HEADER_DIR=/mingw/include Though, it turns out after all in mkfixinc.sh that for MinGW a do-nothing fixincludes is created... -- Eric R. Krause |
From: Eric R. K. <ekr...@ba...> - 2005-02-22 23:09:59
|
Eric R. Krause wrote: > I encountered this also, and traced the cause to the > NATIVE_SYSTEM_HEADER_DIR being defined by default as /usr/include. > Fixincludes should work properly if you tell 'make' to define > NATIVE_SYSTEM_HEADER_DIR properly, e.g.: > make ... NATIVE_SYSTEM_HEADER_DIR=/mingw/include > Turns out this doesn't quite work... the NATIVE_SYSTEM_HEADER_DIR value is not propagated into the fixincludes build process. You'll need to change NATIVE_SYSTEM_HEADER_DIR in gcc/Makefile(.in) to /mingw/include. -- Eric R. Krause |
From: Eric R. K. <ekr...@ba...> - 2005-02-23 02:52:21
|
Rob Pollock wrote: > ../gcc-3.4.2-20040916-1/configure --with-gcc --with-gnu-ld --with-gnu-as > --prefix=/mingw --oldincludedir=/mingw/include --disable-nls > make CFLAGS="-march=pentium-mmx -Os -fomit-frame-pointer" > CXXFLAGS="-march=pentium-mmx -mthreads -fno-omit-frame-pointer -Os" > LDFLAGS=-s bootstrap The --oldincludedir shouldn't be necessary. I was able to build without it just fine. > * had to modify the Makefile in the ./gcc folder because it tried to > include /usr/include and this broke stuff (fixed by changing offending > line) See http://article.gmane.org/gmane.comp.gnu.mingw.user/15211 and http://article.gmane.org/gmane.comp.gnu.mingw.user/15212. > make[4]: Leaving directory > `/d/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/libsupc++' > Making all in src > make[4]: Entering directory > `/d/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/src' > /bin/sh ../libtool --tag CXX --mode=compile > /d/tmp/gcc-3.4.2-20040916-1/gcc/xgcc -shared-libgcc > -B/d/tmp/gcc-3.4.2-20040916-1/gcc/ -nostdinc++ > -L/d/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/src > -L/d/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/src/.libs > -B/mingw/i686-pc-mingw32/bin/ -B/mingw/i686-pc-mingw32/lib/ -isystem > /mingw/i686-pc-mingw32/include -isystem > /mingw/i686-pc-mingw32/sys-include > -I/d/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/include/i686-pc-mingw32 > -I/d/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/include > -I/d/tmp/gcc-3.4.2-20040916-1/libstdc++-v3/libsupc++ -O2 > -march=pentium-mmx -Os -fomit-frame-pointer -march=pentium-mmx > -mthreads -fno-omit-frame-pointer -Os -fno-implicit-templates -Wall -W > -Wwrite-strings -Wcast-qual -fdiagnostics-show-location=once -c -o > allocator.lo ../../.././libstdc++-v3/src/allocator.cc > /d/tmp/gcc-3.4.2-20040916-1/gcc/xgcc -shared-libgcc > -B/d/tmp/gcc-3.4.2-20040916-1/gcc/ -nostdinc++ > -L/d/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/src > -L/d/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/src/.libs > -B/mingw/i686-pc-mingw32/bin/ -B/mingw/i686-pc-mingw32/lib/ -isystem > /mingw/i686-pc-mingw32/include -isystem > /mingw/i686-pc-mingw32/sys-include > -I/d/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/include/i686-pc-mingw32 > -I/d/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/include > -I/d/tmp/gcc-3.4.2-20040916-1/libstdc++-v3/libsupc++ -O2 > -march=pentium-mmx -Os -fomit-frame-pointer -march=pentium-mmx > -mthreads -fno-omit-frame-pointer -Os -fno-implicit-templates -Wall -W > -Wwrite-strings -Wcast-qual -fdiagnostics-show-location=once -c > ../../.././libstdc++-v3/src/allocator.cc -o allocator.o > In file included from > d:/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/include/bits/postypes.h:46, > from > d:/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/include/iosfwd:50, > from > d:/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/include/bits/stl_algobase.h:70, > from > d:/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/include/memory:54, > from ../../.././libstdc++-v3/src/allocator.cc:35: > d:/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/include/cwchar:145: > error: `::btowc' has not been declared [snip] I wrote earlier: > Seems to me like libstdc++-v3 config is defining _GLIBCXX_HAVE_WCHAR_H > to 0 but is defining _GLIBCXX_USE_WCHAR_T to 1? All of the functions > mentioned as not being declared are in fact declared in wchar.h, so > this would seem to indicate that cwchar is not including wchar.h. I don't get that, but rather this in mingw/libstdc++-v3/include/mingw32/bits/c++config.h: /* #define _GLIBCXX_USE_WCHAR_T */ #define _GLIBCXX_HAVE_WCHAR_H 1 Very odd. _GLIBCXX_USE_WCHAR_T will only be defined if the host platform has XPG2 wchar support, which I am assuming mingw-runtime doesn't have. Rob, could you please do this from your GCC build directory: cd ii686-pc-mingw32/libstdc++-v3/include/mingw32/bits grep -E '_USE_WCHAR|_HAVE_WCHAR' and report the output? Thanks, Eric |
From: Rob P. <rob...@gm...> - 2005-02-23 05:27:54
|
Hi Eric, Just got home so I haven't had time to try out the other suggestions (thanks Earnie) but here is the output from grep in i686-pc-mingw32/libstdc++-v3/include/mingw32/bits $ grep -E '_USE_WCHAR|_HAVE_WCHAR' * basic_ios.tcc:#ifdef _GLIBCXX_USE_WCHAR_T basic_string.tcc:#ifdef _GLIBCXX_USE_WCHAR_T char_traits.h:#if defined (_GLIBCXX_USE_WCHAR_T) || defined (_GLIBCXX_USE_WSTRING) char_traits.h:#if defined (_GLIBCXX_USE_WCHAR_T) char_traits.h:#endif //_GLIBCXX_USE_WCHAR_T codecvt.h:#ifdef _GLIBCXX_USE_WCHAR_T codecvt.h:#endif //_GLIBCXX_USE_WCHAR_T codecvt.h:#ifdef _GLIBCXX_USE_WCHAR_T cpp_type_traits.h:# ifdef _GLIBCXX_USE_WCHAR_T fstream.tcc:#ifdef _GLIBCXX_USE_WCHAR_T istream.tcc:#ifdef _GLIBCXX_USE_WCHAR_T locale_facets.h:#ifdef _GLIBCXX_USE_WCHAR_T locale_facets.h:#ifdef _GLIBCXX_USE_WCHAR_T locale_facets.h:#endif //_GLIBCXX_USE_WCHAR_T locale_facets.h:#ifdef _GLIBCXX_USE_WCHAR_T locale_facets.h:#ifdef _GLIBCXX_USE_WCHAR_T locale_facets.h:#ifdef _GLIBCXX_USE_WCHAR_T locale_facets.h:#ifdef _GLIBCXX_USE_WCHAR_T locale_facets.h:#ifdef _GLIBCXX_USE_WCHAR_T locale_facets.h:#ifdef _GLIBCXX_USE_WCHAR_T locale_facets.tcc:#ifdef _GLIBCXX_USE_WCHAR_T localefwd.h:#ifdef _GLIBCXX_USE_WCHAR_T localefwd.h:#ifdef _GLIBCXX_USE_WCHAR_T ostream.tcc:#ifdef _GLIBCXX_USE_WCHAR_T sstream.tcc:#ifdef _GLIBCXX_USE_WCHAR_T streambuf.tcc:#ifdef _GLIBCXX_USE_WCHAR_T stringfwd.h:#if defined (_GLIBCXX_USE_WCHAR_T) || defined \ (_GLIBCXX_USE_WSTRING) I'm somewhat confused. Don't see *_WCHAR_T defined anywhere. Anyway, will have to try above suggestions. Thanks for your responses, Rob. > > Very odd. _GLIBCXX_USE_WCHAR_T will only be defined if the host > platform has XPG2 wchar support, which I am assuming mingw-runtime > doesn't have. > > Rob, could you please do this from your GCC build directory: > cd ii686-pc-mingw32/libstdc++-v3/include/mingw32/bits > grep -E '_USE_WCHAR|_HAVE_WCHAR' > > and report the output? > > Thanks, > > Eric > > > ------------------------------------------------------- > SF email is sponsored by - The IT Product Guide > Read honest & candid reviews on hundreds of IT Products from real users. > Discover which products truly live up to the hype. Start reading now. > http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click > _______________________________________________ > MinGW-users mailing list > Min...@li... > > You may change your MinGW Account Options or unsubscribe at: > https://lists.sourceforge.net/lists/listinfo/mingw-users > |
From: Eric R. K. <ekr...@ba...> - 2005-02-23 05:44:32
|
Rob Pollock wrote: > $ grep -E '_USE_WCHAR|_HAVE_WCHAR' * Sorry, forgot to mention it was the output of that grep command on a file called c++config.h in that directory. Thanks, Eric |
From: Rob P. <rob...@gm...> - 2005-02-23 05:43:42
|
also, found this: (commented out) Maybe I should uncomment and try building again?? /d/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3 $ grep -E '_USE_WCHAR|_HAVE_WCHAR' * config.h:/* #undef _GLIBCXX_USE_WCHAR_T */ On Wed, 23 Feb 2005 18:26:46 +1300, Rob Pollock <rob...@gm...> wrote: > Hi Eric, > > Just got home so I haven't had time to try out the other suggestions > (thanks Earnie) > but here is the output from grep in > i686-pc-mingw32/libstdc++-v3/include/mingw32/bits > > $ grep -E '_USE_WCHAR|_HAVE_WCHAR' * > basic_ios.tcc:#ifdef _GLIBCXX_USE_WCHAR_T > basic_string.tcc:#ifdef _GLIBCXX_USE_WCHAR_T > char_traits.h:#if defined (_GLIBCXX_USE_WCHAR_T) || defined > (_GLIBCXX_USE_WSTRING) > char_traits.h:#if defined (_GLIBCXX_USE_WCHAR_T) > char_traits.h:#endif //_GLIBCXX_USE_WCHAR_T > codecvt.h:#ifdef _GLIBCXX_USE_WCHAR_T > codecvt.h:#endif //_GLIBCXX_USE_WCHAR_T > codecvt.h:#ifdef _GLIBCXX_USE_WCHAR_T > cpp_type_traits.h:# ifdef _GLIBCXX_USE_WCHAR_T > fstream.tcc:#ifdef _GLIBCXX_USE_WCHAR_T > istream.tcc:#ifdef _GLIBCXX_USE_WCHAR_T > locale_facets.h:#ifdef _GLIBCXX_USE_WCHAR_T > locale_facets.h:#ifdef _GLIBCXX_USE_WCHAR_T > locale_facets.h:#endif //_GLIBCXX_USE_WCHAR_T > locale_facets.h:#ifdef _GLIBCXX_USE_WCHAR_T > locale_facets.h:#ifdef _GLIBCXX_USE_WCHAR_T > locale_facets.h:#ifdef _GLIBCXX_USE_WCHAR_T > locale_facets.h:#ifdef _GLIBCXX_USE_WCHAR_T > locale_facets.h:#ifdef _GLIBCXX_USE_WCHAR_T > locale_facets.h:#ifdef _GLIBCXX_USE_WCHAR_T > locale_facets.tcc:#ifdef _GLIBCXX_USE_WCHAR_T > localefwd.h:#ifdef _GLIBCXX_USE_WCHAR_T > localefwd.h:#ifdef _GLIBCXX_USE_WCHAR_T > ostream.tcc:#ifdef _GLIBCXX_USE_WCHAR_T > sstream.tcc:#ifdef _GLIBCXX_USE_WCHAR_T > streambuf.tcc:#ifdef _GLIBCXX_USE_WCHAR_T > stringfwd.h:#if defined (_GLIBCXX_USE_WCHAR_T) || defined \ > (_GLIBCXX_USE_WSTRING) > > I'm somewhat confused. Don't see *_WCHAR_T defined anywhere. > > Anyway, will have to try above suggestions. > > Thanks for your responses, > Rob. > > > > > Very odd. _GLIBCXX_USE_WCHAR_T will only be defined if the host > > platform has XPG2 wchar support, which I am assuming mingw-runtime > > doesn't have. > > > > Rob, could you please do this from your GCC build directory: > > cd ii686-pc-mingw32/libstdc++-v3/include/mingw32/bits > > grep -E '_USE_WCHAR|_HAVE_WCHAR' > > > > and report the output? > > > > Thanks, > > > > Eric > > > > > > ------------------------------------------------------- > > SF email is sponsored by - The IT Product Guide > > Read honest & candid reviews on hundreds of IT Products from real users. > > Discover which products truly live up to the hype. Start reading now. > > http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click > > _______________________________________________ > > MinGW-users mailing list > > Min...@li... > > > > You may change your MinGW Account Options or unsubscribe at: > > https://lists.sourceforge.net/lists/listinfo/mingw-users > > > |
From: Eric R. K. <ekr...@ba...> - 2005-02-23 06:03:13
|
Rob Pollock wrote: > also, found this: (commented out) > > Maybe I should uncomment and try building again?? > > > /d/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3 > $ grep -E '_USE_WCHAR|_HAVE_WCHAR' * > config.h:/* #undef _GLIBCXX_USE_WCHAR_T */ Hmm... This would appear to indicate that wchar.h should be included by cwchar, because its inclusion there is guarded by #if _GLIBCXX_USE_WCHAR_T #include <wchar.h> #endif I see you did not configure GCC with --disable-shared. I used --disable-shared before and things turned out OK. I'll try building GCC again without --disable-shared and see what happens. Eric |
From: Rob P. <rob...@gm...> - 2005-02-24 05:44:09
|
I tried the whole thing, rebuilding from scratch, with --disable-shared, and still got the same error. I was able to fix things by specifically adding appropriate #undef lines to cwchar, however, on make install: /bin/install -c -m 644 ${file} /mingw/include/c++/3.4.2/./i686-pc-mingw32/bits; done /bin/sh /d/tmp/gcc-3.4.2-20040916-1/libstdc++-v3/../mkinstalldirs /mingw/include/c++/3.4.2/./i686-pc-mingw32/bits/stdc++.h.gch for file in ./i686-pc-mingw32/bits/stdc++.h.gch/*; do \ /bin/install -c -m 644 $file /mingw/include/c++/3.4.2/./i686-pc-mingw32/bits/stdc++.h.gch; done /bin/install: cannot stat `./i686-pc-mingw32/bits/stdc++.h.gch/*': No such file or directory make[2]: *** [install-pch] Error 1 So something is seriously wrong with my configure/make setup, I don't know what it is...... I guess we'll ignore that and try to figure out how to configure gcc so it compiles (including libstdc++) without manual intervention along the way. I'll try using the default --host=mingw32 --target=mingw32 configure flags for starters. How do I apply the patch from the download site?? Maybe that's the solution. (sorry for dufus question) Thanks a lot for all your help Rob. On Wed, 23 Feb 2005 01:01:34 -0500, Eric R. Krause <ekr...@ba...> wrote: > Rob Pollock wrote: > > also, found this: (commented out) > > > > Maybe I should uncomment and try building again?? > > > > > > /d/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3 > > $ grep -E '_USE_WCHAR|_HAVE_WCHAR' * > > config.h:/* #undef _GLIBCXX_USE_WCHAR_T */ > > Hmm... This would appear to indicate that wchar.h should be included by > cwchar, because its inclusion there is guarded by > #if _GLIBCXX_USE_WCHAR_T > #include <wchar.h> > #endif > > I see you did not configure GCC with --disable-shared. I used > --disable-shared before and things turned out OK. I'll try building GCC > again without --disable-shared and see what happens. > > > Eric > > ------------------------------------------------------- > SF email is sponsored by - The IT Product Guide > Read honest & candid reviews on hundreds of IT Products from real users. > Discover which products truly live up to the hype. Start reading now. > http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click > _______________________________________________ > MinGW-users mailing list > Min...@li... > > You may change your MinGW Account Options or unsubscribe at: > https://lists.sourceforge.net/lists/listinfo/mingw-users > |
From: Eric R. K. <ekr...@ba...> - 2005-02-24 06:57:46
|
Rob Pollock wrote: > I tried the whole thing, rebuilding from scratch, with > --disable-shared, and still > got the same error. > > I was able to fix things by specifically adding appropriate > #undef lines to cwchar, however, on make install: I wouldn't do that, it should not need to be modified to work normally. > /bin/install -c -m 644 ${file} > /mingw/include/c++/3.4.2/./i686-pc-mingw32/bits; done > /bin/sh /d/tmp/gcc-3.4.2-20040916-1/libstdc++-v3/../mkinstalldirs > /mingw/include/c++/3.4.2/./i686-pc-mingw32/bits/stdc++.h.gch > for file in ./i686-pc-mingw32/bits/stdc++.h.gch/*; do \ > /bin/install -c -m 644 $file > /mingw/include/c++/3.4.2/./i686-pc-mingw32/bits/stdc++.h.gch; done > /bin/install: cannot stat `./i686-pc-mingw32/bits/stdc++.h.gch/*': No > such file or directory > make[2]: *** [install-pch] Error 1 > > So something is seriously wrong with my configure/make setup, I don't > know what it is...... I'm beginning to suspect an incompatibility between GCC 3.4's pre-compiled header feature and Windows 98. > How do I apply the patch from the download site?? Maybe that's the solution. > (sorry for dufus question) If you are using the source tarballs from the download site, they contain pre-patched source--no need to apply any patches. Eric |
From: Dave M. <win...@nt...> - 2005-02-24 07:24:07
|
Eric R. Krause wrote: >> /mingw/include/c++/3.4.2/./i686-pc-mingw32/bits; done >> /bin/sh /d/tmp/gcc-3.4.2-20040916-1/libstdc++-v3/../mkinstalldirs >> /mingw/include/c++/3.4.2/./i686-pc-mingw32/bits/stdc++.h.gch >> for file in ./i686-pc-mingw32/bits/stdc++.h.gch/*; do \ >> /bin/install -c -m 644 $file >> /mingw/include/c++/3.4.2/./i686-pc-mingw32/bits/stdc++.h.gch; done >> /bin/install: cannot stat `./i686-pc-mingw32/bits/stdc++.h.gch/*': No >> such file or directory >> make[2]: *** [install-pch] Error 1 >> >> So something is seriously wrong with my configure/make setup, I don't >> know what it is...... > > /bin/install -c -m 644 ${file} > > I'm beginning to suspect an incompatibility between GCC 3.4's > pre-compiled header feature and Windows 98. what? Like the pre-compiled headers not being built on windows since they don't work? Dave |
From: Rob P. <rob...@gm...> - 2005-02-24 09:49:59
|
> > I was able to fix things by specifically adding appropriate > > #undef lines to cwchar, however, on make install: > > I wouldn't do that, it should not need to be modified to work normally. > Specifically, the error message I was getting during compile was: d:/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/include/cwchar:145: error: `::btowc' has not been declared d:/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/include/cwchar:150: error: `::fwide' has not been declared If you look at .../include/cwchar, you see the offending *W_CHAR declarations: #if _GLIBCXX_USE_WCHAR_T || _GLIBCXX_USE_WSTRING namespace std { using ::wint_t; using ::btowc; using ::fgetwc; using ::fgetws; using ::fputwc; using ::fputws; using ::fwide; so I merely added before this #undef _GLIBCXX_USE_WCHAR_T #undef _GLIBCXX_USE_WSTRING You're right, I _shouldn't_ have to do this, but nothing else seemed to work... Never mind, i would really like some magic configure switch to fix this.... sigh... Thanks anyway, Rob |
From: Rob P. <rob...@gm...> - 2005-02-24 10:16:06
|
OK, looking through libstdc++ configure, there are a couple of options: I'll try --enable-libstdcxx-pch build pre-compiled libstdc++ headers [default=$is_hosted] (set to --disable) --enable-c-mbchar enable multibyte (wide) characters [default=yes] (set to --disable) in configure and see what happens (without messing with the source) On Thu, 24 Feb 2005 22:49:53 +1300, Rob Pollock <rob...@gm...> wrote: > > > I was able to fix things by specifically adding appropriate > > > #undef lines to cwchar, however, on make install: > > > > I wouldn't do that, it should not need to be modified to work normally. > > > > Specifically, the error message I was getting during compile was: > > d:/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/include/cwchar:145: > error: `::btowc' has not been declared > d:/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/include/cwchar:150: > error: `::fwide' has not been declared > > If you look at .../include/cwchar, you see the offending *W_CHAR declarations: > > #if _GLIBCXX_USE_WCHAR_T || _GLIBCXX_USE_WSTRING > namespace std > { > using ::wint_t; > > using ::btowc; > using ::fgetwc; > using ::fgetws; > using ::fputwc; > using ::fputws; > using ::fwide; > > so I merely added before this > > > #undef _GLIBCXX_USE_WCHAR_T > #undef _GLIBCXX_USE_WSTRING > > You're right, I _shouldn't_ have to do this, but nothing else seemed to work... > > Never mind, > > i would really like some magic configure switch to fix this.... sigh... > > Thanks anyway, > Rob > |
From: Rob P. <rob...@gm...> - 2005-02-25 07:38:07
|
Using these options to configure didn't work... still got errors from build process trying to "use" objects that aren't defined!!! I passed these options to the top level of ./configure. I tried to configure from within the libstdc++ directory (which is the configure script that these options apply to, i.e. --disable-libstdcxx-pch and --disable-c-mbchar) and got "could not find install.sh in ../../ [etc.] errors". It seems the configure scripts in the lower level directories are called by make in the top level directory. Maybe make never passes the options down to the lower levels (./gcc ./libstdc++ ./i686-mingw32 etc) I dunno WHATS going on. Do you think cross-compiling under cygwin is a better way to go?? (could be the ONLY way to go...) I thought this would be easier/faster. Thanks Rob. On Thu, 24 Feb 2005 23:15:50 +1300, Rob Pollock <rob...@gm...> wrote: > OK, looking through libstdc++ configure, there are a couple of options: > > I'll try > --enable-libstdcxx-pch build pre-compiled libstdc++ headers > [default=$is_hosted] > (set to --disable) > > --enable-c-mbchar enable multibyte (wide) characters > [default=yes] > (set to --disable) > in configure > > and see what happens (without messing with the source) > > > On Thu, 24 Feb 2005 22:49:53 +1300, Rob Pollock <rob...@gm...> wrote: > > > > I was able to fix things by specifically adding appropriate > > > > #undef lines to cwchar, however, on make install: > > > > > > I wouldn't do that, it should not need to be modified to work normally. > > > > > > > Specifically, the error message I was getting during compile was: > > > > d:/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/include/cwchar:145: > > error: `::btowc' has not been declared > > d:/tmp/gcc-3.4.2-20040916-1/i686-pc-mingw32/libstdc++-v3/include/cwchar:150: > > error: `::fwide' has not been declared > > > > If you look at .../include/cwchar, you see the offending *W_CHAR declarations: > > > > #if _GLIBCXX_USE_WCHAR_T || _GLIBCXX_USE_WSTRING > > namespace std > > { > > using ::wint_t; > > > > using ::btowc; > > using ::fgetwc; > > using ::fgetws; > > using ::fputwc; > > using ::fputws; > > using ::fwide; > > > > so I merely added before this > > > > > > #undef _GLIBCXX_USE_WCHAR_T > > #undef _GLIBCXX_USE_WSTRING > > > > You're right, I _shouldn't_ have to do this, but nothing else seemed to work... > > > > Never mind, > > > > i would really like some magic configure switch to fix this.... sigh... > > > > Thanks anyway, > > Rob > > > |
From: Eric R. K. <ekr...@ba...> - 2005-02-25 13:01:43
|
Rob Pollock wrote: > Using these options to configure didn't work... still got errors from build > process trying to "use" objects that aren't defined!!! > > I passed these options to the top level of ./configure. I tried to > configure from > within the libstdc++ directory (which is the configure script that > these options apply to, i.e. --disable-libstdcxx-pch and > --disable-c-mbchar) and got "could not find > install.sh in ../../ [etc.] errors". These options aren't needed for normal builds. > It seems the configure scripts in the lower level directories are > called by make in > the top level directory. Maybe make never passes the options down to the lower > levels (./gcc ./libstdc++ ./i686-mingw32 etc) The way the GCC build process works is that the top-level 'configure' simply configures building for the top level of the (GCC) source tree. When 'make' is run, the 'configure-host-*' targets are executed to configure the appropriate subdirectories for the host (which for GCC are gcc, intl, and libiberty). When those are built, the 'configure-target-*' targets are executed to configure other things, like runtime libraries, for the target. In GCC's case, this would be libstdc++-v3, libf77, libffi, libjava, ... (though in my case, I use --enable-languages=c,c++ and this the only target-specific dependency compiled is libstdc++-v3). libiberty is also rebuilt for the target as well. > Do you think cross-compiling under cygwin is a better way to go?? > (could be the ONLY way to go...) No (not for Windows 98, at least--things are even worse with Cygwin as far as the fork errors). At this point, it looks like something is causing libstdc++-v3 configure not to find a suitable wchar.h. I'm willing to bet fork failures during the wchar.h (header or function) checks are to blame. Eric |
From: Eric R. K. <ekr...@ba...> - 2005-02-26 00:53:45
Attachments:
config.log.bz2
|
Eric R. Krause wrote: > Rob Pollock wrote: > >> Using these options to configure didn't work... still got errors from >> build >> process trying to "use" objects that aren't defined!!! Sure enough, I (finally) got patient enough to wait for libstdc++-v3 configure to complete under Win98 (I started it up late last night and let it run while I slept), and when I woke up, the build had errored out with the exact same errors that Rob got. And, whaddya know, in $target/libstdc++-v3/include/include/$target/bits/c++config.h[*], I see /* #undef _GLIBCXX_HAVE_WCHAR_H */ at line 666. There is in fact some 'configure' confusion happening. Looking at the libstdc++-v3 config.log, I find that a bunch of function checks after __signbit are failing because of a malformed preprocessor '#define 1' line in the test programs that (apparently) did not exist before the __signbit test. The (bzip2-compressed) config.log from the build attempt under Win98 is attached as proof of this. I'm going to investigate further into this. Eric |
From: Eric R. K. <ekr...@ba...> - 2005-02-24 23:09:13
|
Rob Pollock wrote: > If you look at .../include/cwchar, you see the offending *W_CHAR declarations: > > #if _GLIBCXX_USE_WCHAR_T || _GLIBCXX_USE_WSTRING [snip] Oops, forgot about that. _GLIBCXX_USE_WSTRING is defined to 1 as a mingw local hack to enable the use of std::wstring. The fact that the errors occur seems, to me, to indicate a problem with the definitions from wchar.h being included properly. My build tests were under Windows 2000, so I'm going to give the build process a whirl under Windows 98 and see what happens. Thanks, Eric |
From: Eric R. K. <ekr...@ba...> - 2005-02-25 04:37:26
|
Eric R. Krause wrote: > My build tests were under Windows 2000, so I'm going to give the build > process a whirl under Windows 98 and see what happens. I've run into problems configuring libstdc++-v3 under Windows 98. At a certain point the system starts freezing and the configure process chews forward like molasses... eventually msys fork errors (indicating Win32 error code 8 - ERROR_NOT_ENOUGH_MEMORY) start showing up. Rob, did you see any messages indicating a 'fork failure' during your original build? Eric |
From: Rob P. <rob...@gm...> - 2005-02-25 07:33:08
|
Yup... got both not enough memory and fork errors. Like I said in an earlier post, it was VERY slow during the configure process. I restarted the computer with >all< my startup programs off, and it was OK for building then. I did get fork failures, but even upon reconfiguring without fork failures I got build errors. (re: WCHAR stuff and pch stuff on make install!!) So something is awry... On Thu, 24 Feb 2005 23:35:26 -0500, Eric R. Krause <ekr...@ba...> wrote: > Eric R. Krause wrote: > > My build tests were under Windows 2000, so I'm going to give the build > > process a whirl under Windows 98 and see what happens. > > I've run into problems configuring libstdc++-v3 under Windows 98. At a > certain point the system starts freezing and the configure process chews > forward like molasses... eventually msys fork errors (indicating Win32 > error code 8 - ERROR_NOT_ENOUGH_MEMORY) start showing up. > > Rob, did you see any messages indicating a 'fork failure' during your > original build? > > > Eric > > ------------------------------------------------------- > SF email is sponsored by - The IT Product Guide > Read honest & candid reviews on hundreds of IT Products from real users. > Discover which products truly live up to the hype. Start reading now. > http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click > _______________________________________________ > MinGW-users mailing list > Min...@li... > > You may change your MinGW Account Options or unsubscribe at: > https://lists.sourceforge.net/lists/listinfo/mingw-users > |
From: Eric R. K. <ekr...@ba...> - 2005-02-26 00:32:40
|
Earnie Boyd wrote: > <quote who="Eric R. Krause"> >>I've run into problems configuring libstdc++-v3 under Windows 98. At a >>certain point the system starts freezing and the configure process chews >>forward like molasses... eventually msys fork errors (indicating Win32 >>error code 8 - ERROR_NOT_ENOUGH_MEMORY) start showing up. >> > > > I'm curious as to does it help if you remove rxvt from the mix? I actually don't use rxvt, instead opting for a normal Windows terminal window (which works out quite well on Windows 2000). Eric |
From: Danny S. <dan...@cl...> - 2005-02-24 08:00:40
|
Dave Murphy wrote: >> >> I'm beginning to suspect an incompatibility between GCC 3.4's >> pre-compiled header feature and Windows 98. > > what? Like the pre-compiled headers not being built on windows since > they don't work? They work fine for me (on NT and higher). All the pch testsuite cases in gcc pass. and I use a precompiled w32api all the time. I didn't distribute the two libstdc++.h.gch files since they added about 30MB to the binary distro. If pch doesn't work on win9x, someone should file a bug.report. Danny > > Dave > > > ------------------------------------------------------- > SF email is sponsored by - The IT Product Guide > Read honest & candid reviews on hundreds of IT Products from real users. > Discover which products truly live up to the hype. Start reading now. > http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click > _______________________________________________ > MinGW-users mailing list > Min...@li... > > You may change your MinGW Account Options or unsubscribe at: > https://lists.sourceforge.net/lists/listinfo/mingw-users |
From: Earnie B. <ea...@us...> - 2005-02-25 12:14:50
|
<quote who="Rob Pollock"> > Using these options to configure didn't work... still got errors from > build > process trying to "use" objects that aren't defined!!! > > I passed these options to the top level of ./configure. I tried to > configure from > within the libstdc++ directory (which is the configure script that > these options apply to, i.e. --disable-libstdcxx-pch and > --disable-c-mbchar) and got "could not find > install.sh in ../../ [etc.] errors". > You have to add the switches at the top build directory. If you've configured in the source directory you should do a ``make distclean'' first. If you've configured in a build directory (my preference) you can just ``rm -rf *'' to start over. > It seems the configure scripts in the lower level directories are > called by make in > the top level directory. Maybe make never passes the options down to the > lower > levels (./gcc ./libstdc++ ./i686-mingw32 etc) > > I dunno WHATS going on. > > Do you think cross-compiling under cygwin is a better way to go?? > (could be the ONLY way to go...) > The problems you're having shouldn't go away just because you use cygwin instead. > I thought this would be easier/faster. > I build gcc with MSYS as a test for MSYS. It should work for you. Earnie -- http://www.mingw.org http://sourceforge.net/projects/mingw https://sourceforge.net/donate/index.php?user_id=15438 |
From: Eric R. K. <ekr...@ba...> - 2005-02-25 12:43:17
|
Earnie Boyd wrote: > I build gcc with MSYS as a test for MSYS. It should work for you. I can confirm that GCC does indeed build cleanly under MSYS on Windows 2000. However, the build will crash on the fixincludes step unless NATIVE_SYSTEM_HEADER_DIR in $(builddir)/gcc/Makefile is changed to '/mingw/include'. Eric |