Hi Farid, I got stdcxx-4.2.2 from svn and applied the mingw.patch you provided.
I assume that you are building stdcxx-4.2.2 using Cygwin, and targeting MinGW. My objective is to build stdcxx-4.2.2 using MinGW. I don't use Cygwin and I don't plan to use it. There were two fixes I had to make, to get the build of the patched stdcxx-4.2.2 to run: Fix #1 -- /stdcxx-4.2.2/CNUmakefile: On lines 583, 591 and 592 of /stdcxx-4.2.2/GNUmakefile: ln -sf $(TOPDIR)/GNUmakefile $(buildpath)/GNUmakefile; \ ** ln -sf $(ETCDIR)/GNUmakefile.cfg $(buildpath)/include/GNUmakefile; \ ln -sf $(ETCDIR)/GNUmakefile.lib $(LIBDIR)/GNUmakefile; \ ln -sf $(ETCDIR)/GNUmakefile.rwt $(buildpath)/rwtest/GNUmakefile; \ ln -sf $(ETCDIR)/GNUmakefile.exm $(EXMDIR)/GNUmakefile; \ ln -sf $(ETCDIR)/GNUmakefile.tst $(TSTDIR)/GNUmakefile; \ ln -sf $(ETCDIR)/GNUmakefile.ph $(PHTSTDIR)/GNUmakefile; \ ln -sf $(ETCDIR)/GNUmakefile.bin $(BINDIR)/GNUmakefile; \ ln -sf $(ETCDIR)/makefile.common $(buildpath)/makefile.common; \ ** ln -sf $(ETCDIR)/makefile.rules $(buildpath)/makefile.rules; \ ** ln -sf $(ETCDIR)/configure.sh $(buildpath)/include/configure; \ ln -sf $(BINDIR)/exec $(buildpath)/run; \ ln -sf $(BINDIR)/exec $(BINDIR)/run; \ ln -sf $(ETCDIR)/run_locale_utils.sh $(BINDIR)/run_utils; \ ln -sf $(BINDIR)/exec $(TSTDIR)/run; \ ln -sf $(BINDIR)/exec $(PHTSTDIR)/run; \ ln -sf $(BINDIR)/exec $(EXMDIR)/run On the three lines marked ** above, I added an explicit file name after the $(buildpath) because the MinGW <ls> command, was REPLACING the /stdcxx-4.2.1/build/ directory name, with a link (named /stdcxx-4.2.1/build) to the file, instead of creating a link to the file (with the name of the file), IN the /stdcxx-4.2.1/build/ directory. Fix #2 -- Your /stdcxx-4.2.2/build file: I renamed the /stdcxx-4.2.2/build file that came with the svn download, to /stdcxx-4.2.1/build_faridz, because the presence of the build FILE was preventing the GNUmakefile from creating the /stdcxx-4.2.2/build/ DIRECTORY. * * * * * * The build go a LOT further with the patched stdcxx-4.2.2 than it did with the stdcxx-4.2.1. According to Windows XP, the final size of the /stdcxx-4.2.1/build/ directory (including sub-directories) is 126 MB. There is an /stdcxx-4.2.2/build/liblibstd.a file of size 2.33 MB. HOWEVER, the build ended with the following displayed on the MSYS console: <MSYS:> [...] generating dependencies for $(TOPDIR)/tests/self/0.alloc.cpp gcc -M -I/stdcxx-4.2.2/include/ansi -I/stdcxx-4.2.2/include -I/stdcxx-4.2.2/build/include -I/stdcxx-4.2.2/tests/include -pedantic -nostdinc++ -mno-cygwin -W -Wall -Wcast-qual -Winline -Wshadow -Wwrite-strings -Wno-long-long -Wcast-align /stdcxx-4.2.2/tests/self/0.alloc.cpp make[2]: Leaving directory `/stdcxx-4.2.2/build/tests' make[2]: Entering directory `/stdcxx-4.2.2/build/tests' [...] gcc -c -I/stdcxx-4.2.2/include/ansi -I/stdcxx-4.2.2/include -I/stdcxx-4.2.2/build/include -I/stdcxx-4.2.2/tests/include -pedantic -nostdinc++ -mno-cygwin -W -Wall -Wcast-qual -Winline -Wshadow -Wwrite-strings -Wno-long-long -Wcast-align /stdcxx-4.2.2/tests/regress/18.c.limits.stdcxx-988.cpp i:/apps/stdcxx-4.2.2/tests/regress/18.c.limits.stdcxx-988.cpp: In function `int main()': i:/apps/stdcxx-4.2.2/tests/regress/18.c.limits.stdcxx-988.cpp:144: error: `LONG_BIT' was not declared in this scope i:/apps/stdcxx-4.2.2/tests/regress/18.c.limits.stdcxx-988.cpp:145: error: `_POSIX_SSIZE_MAX' was not declared in this scope i:/apps/stdcxx-4.2.2/tests/regress/18.c.limits.stdcxx-988.cpp:146: error: `WORD_BIT' was not declared in this scope i:/apps/stdcxx-4.2.2/tests/regress/18.c.limits.stdcxx-988.cpp:151: warning: this decimal constant is unsigned only in ISO C90 i:/apps/stdcxx-4.2.2/tests/regress/18.c.limits.stdcxx-988.cpp:152: warning: this decimal constant is unsigned only in ISO C90 i:/apps/stdcxx-4.2.2/tests/regress/18.c.limits.stdcxx-988.cpp:144: warning: unused variable 'LONG_BIT' i:/apps/stdcxx-4.2.2/tests/regress/18.c.limits.stdcxx-988.cpp:145: warning: unused variable '_POSIX_SSIZE_MAX' i:/apps/stdcxx-4.2.2/tests/regress/18.c.limits.stdcxx-988.cpp:146: warning: unused variable 'WORD_BIT' make[2]: *** [18.c.limits.stdcxx-988.o] Error 1 make[2]: Leaving directory `/stdcxx-4.2.2/build/tests' make[1]: [tests] Error 2 (ignored) make[1]: Leaving directory `/stdcxx-4.2.2/build' [EMAIL PROTECTED] /stdcxx-4.2.2 $ </MSYS:> In the line "make[1]: [tests] Error 2 (ignored)", does the "(ignored)" mean that <make> did not terminate prematurely, and that file: /stdcxx-4.2.2/tests/regress/18.c.limits.stdcxx-988.cpp is the last test source file to be compiled? According to the /stdcxx-4.2.2/README file, the last build step is the locale databases. The build I ran left the /stdcxx-4.2.2/nls/ directory completely EMPTY. * * * * * * Please let me know -- did the build complete successfully? If not, and I need to fix the 18.c.limits.stdcxx-988.cpp compile error, what changes to I need to make to fix the compile error? Thanks, Steve Farid Zaripov-2 wrote: > > Hi Steve. > >> I am trying to build stdcxx-4.2.1 on Windows XP (SP2), using the >> MinGW(3.4.5) + MSYS(1.0.10) + (with gcc, g++, etc.) >> operating environment. > > The 4.2.1 version of the stdcxx isn't ported to MinGW. > > You need to get (yet unreleased) 4.2.2 version from svn, i.e.: > > svn co http://svn.apache.org/repos/asf/stdcxx/branches/4.2.x > stdcxx-4.2.2 > > Then apply this patch: http://people.apache.org/~faridz/mingw.patch > > Farid. > > -- View this message in context: http://www.nabble.com/Building-stdcxx-4.2.1-Using-MinGW%2BMSYS-On-Windows-XP-%28SP2%29-tp20672758p20712556.html Sent from the stdcxx-user mailing list archive at Nabble.com.