RE: Building stdcxx-4.2.1 Using MinGW+MSYS On Windows XP (SP2)
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. Actually my goal is make it possible to build stdcxx/MinGW and stdcxx/Cygwin using Cygwin environment as well as stdcxx/MinGW using MSYS environment. There were two fixes I had to make, to get the build of the patched stdcxx-4.2.2 to 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. I have no such problems when running make on MSYS. 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. Hmm, you must be wrong, we don't have any file with the name build in svn. [...] There is an /stdcxx-4.2.2/build/liblibstd.a file of size 2.33 MB. My congratulations, you have just build the stdcxx library :) HOWEVER, the build ended with the following displayed on the MSYS console: When you run make without targets specified, the examples, tests, locales will be build. Not all tests are compiling without errors on gcc/MinGW at the moment. It is ok. You can build the library only (without examples, tests and so on) using this command: make config lib Also I suggest to explicitly specify the build type. I.e.: make BUILDDIR=/var/tmp/stdcxx-4.2.2/gcc/15d BUILDTYPE=15d config lib 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? I don't think so. The make should stop on the first error encountered unless make was executed with -k option specified. 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. Right, that because of make stopped on the compile error you mentioned above. Please let me know -- did the build complete successfully? It depends on what you want :) You have build the stdcxx library successfully, so now you can compile your programs with stdcxx. 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? 18.c.limits.stdcxx-988.cpp is just one of the regression tests. It was not verified on gcc/MinGW so it fails to compile. But this failure doesn't means that there is some problem or bug in stdcxx library. Farid.
Re: Building stdcxx-4.2.1 Using MinGW+MSYS On Windows XP (SP2)
Farid Zaripov wrote: [...] 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. Hmm, you must be wrong, we don't have any file with the name build in svn. Right. I think a build directory gets created automatically when one isn't specified on the command line (via BUILDDIR). Something weird seems to be going on in Steve's environment (the behavior of ln -s is definitely bizarre)... [...] There is an /stdcxx-4.2.2/build/liblibstd.a file of size 2.33 MB. My congratulations, you have just build the stdcxx library :) Although it probably shouldn't be called liblibstd, should it? What's with the duplicate lib part? Martin
Re: Building stdcxx-4.2.1 Using MinGW+MSYS On Windows XP (SP2)
Farid Zaripov wrote: Although it probably shouldn't be called liblibstd, should it? What's with the duplicate lib part? I think you should know, that the library file located in lib subdirectory ;) I suppose that there missed '/' after the first 'lib': /stdcxx-4.2.2/build/lib/libstd.a And what I don't like is that when BUILDTYPE is not specified, the name of library file is always libstd.{a;so} for any possible BUILDMODE values (even for empty BUILDMODE). The comments in GNUMakefile says that BUILDTYPE and BUILDMODE both are optional and by default will be used 11s, but this is not true... We should fix the text. When you don't specify either you get neither debugging (i.e., no -g) nor optimization (i.e., no -O). I.e., you get whatever the default invocation of the compiler gives you with no options. Martin Farid.
Re: Building stdcxx-4.2.1 Using MinGW+MSYS On Windows XP (SP2)
[MS] Right. I think a build directory gets created automatically when one isn't specified on the command line (via BUILDDIR). Something weird seems to be going on in Steve's environment (the behavior of ln -s is definitely bizarre)... [SP] Yes there is something wierd. Please see my response to Farid's message, regarding a test shell script I created, to replicate the MinGW+MSYS ln problem. But I've got a workaround for the problem. And Farid says my stdcxx build is now working. So no big deal. I'm only using MinGW+MSYS for compiling and building C++ programs through the NetBeans IDE (with C++ plugin). That all seems to work fine. It's the comparably far more complex process of building the stdcxx library, that is stressing my MinGW+MSYS. But I want to use stdcxx because it seems to me likely to be superior to the standard library shipped with g++, so I don't mind at all working through the glitches to get stdcxx built and working. * * * * * * [MS] There is an /stdcxx-4.2.2/build/liblibstd.a file of size 2.33 MB. My congratulations, you have just build the stdcxx library :) Although it probably shouldn't be called liblibstd, should it? What's with the duplicate lib part? [SP] It's lack of sleep -- the correct pathname is /stdcxx-4.2.2/build/lib/libstd.a Steve - Original Message - From: Martin Sebor [EMAIL PROTECTED] To: user@stdcxx.apache.org Sent: Thursday, November 27, 2008 3:05 PM Subject: Re: Building stdcxx-4.2.1 Using MinGW+MSYS On Windows XP (SP2) Farid Zaripov wrote: [...] 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. Hmm, you must be wrong, we don't have any file with the name build in svn. Right. I think a build directory gets created automatically when one isn't specified on the command line (via BUILDDIR). Something weird seems to be going on in Steve's environment (the behavior of ln -s is definitely bizarre)... [...] There is an /stdcxx-4.2.2/build/liblibstd.a file of size 2.33 MB. My congratulations, you have just build the stdcxx library :) Although it probably shouldn't be called liblibstd, should it? What's with the duplicate lib part? Martin