From: Scott A. S. <ss...@ma...> - 2002-10-14 15:25:36
|
Greetings, I just installed MinGW 2.0.0 and MSYS 1.0.7-2 and began trying it by building a static library using make from the rxvt shell from MSYS. This same build works fine on Linux and with Cygwin running gcc 2.95.x and the code compiles clean on MSVC++ V6 too. I have encountered two different problems with MinGW & MSYS. Problem 1: I use a recursive makefile that loops through various sub-directories and includes other makefiles. After some time of running smoothly the make program crashes, here is a typical error: 0 [main] make 1212 open_stackdumpfile: Dumping stack trace to make.exe.stackdump make[2]: *** [buildmods] Error 1 make[1]: *** [buildall] Error 2 make: *** [all] Error 2 If I restart make it continues on to some other point, then does the same thing. Each successive restart may pick up where it left off then crash or may die while checking whether it needs to build earlier parts. Where it decides to stop seems random. I noticed a similar problem just after I did the MinGW/MSYS install and thought maybe I needed to reboot or log out/log in. I can also try to make targets that build individual parts of my package. These also cause make to crash intermittently, but with multipe restarts I can get all of my code to compile. Anyone see such problems with make from MSYS/MinGW? Problem 2: A different, less complex, makefile will build my static library just fine. Again this is done in rxvt with a make command. I know I am using the proper make program: $ make -v GNU Make version 3.79.1, by Richard Stallman and Roland McGrath. Built for i686-pc-msys ... I know I am using the proper gcc, here is what it sez: $ gcc -v Reading specs from c:/MinGW/bin/../lib/gcc-lib/mingw32/3.2/specs Configured with: ../gcc/configure --with-gcc --with-gnu-ld --with-gnu-as --host=mingw32 --tar get=mingw32 --prefix=/mingw --enable-threads --disable-nls --enable-language s=f77,c++,objc,ada --disable-win32-registry --disable-shared Thread model: win32 gcc version 3.2 (mingw special 20020817-1) And there is not a single complaint during the build. But then, when I build a program linking to my library I get several undefined reference errors, such as undefined reference to `_GLOBAL...... These are NOT due to a lack of including any library or headers. 99.9% of the library functions produce no complaints. There are member functions, global functions, and static variables scattered throughout my code files that compile splendidly and apparently link without problems. In fact, they work fine too, because I can cut back to the first parts of my code before any of the above errors are produced and see that everything is fine. AFAIK the undefined reference problems are not due to any problems with my code, again it works fine on other C++ compilers. Here is the odd part: It is ALWAYS the first (non-member) function or static variable declared in a particular file which produces the error. Not all of my code files produce the of error even though they have similar functions and static variables too. So, I am mystified. I don't know if this is this a GCC 3.x related problem or a MinGW one. Maybe I need some new compiler/link flags? The pragma inteface/implementation stuff is still supported? If anyone has any clues, I'd appreciate the help. Scott |