------- Comment #3 from rob1weld at aol dot com 2007-04-30 00:14 ------- Did some more testing. The results that follow are from the output of a shell script to catch each error and defeat it. I have edited it down for this report.
There is a bug in gcc-4_2 in that it won't let you make a new ABI (with a three stage build). So how can you switch ABIs? I was able to convert Cygwin from "coff-pe" object file format to "elf" object file format (so I can use TLS and other superior elf features). That is similar to an ABI conversion but was more of a binutils issue (and then recompiling gcc over the new "as" and "ld"). At the moment I am back to using "normal" Cygwin (so others can duplicate what I am doing :) ). There is a similar problem with using all those fancy options (EG: --enable-java-awt=gtk,xlib --enable-gtk-cairo --enable-qt-peer --enable-xmlj --enable-gconf-peer _AND_ also using --enable-multilib) that involves gcc looking for 64 bit libraries (that don't even exist) in /usr/lib when it should look in /lib64. EG: # objdump -a /usr/lib/libreadline.so /usr/lib/libreadline.so: file format elf32-i386 # objdump -a /lib64/libreadline.so.5 /lib64/libreadline.so.5: file format elf64-x86-64 So if I use --enable-multilib and need -lreadline then I am OK, but later in the compile when I need -lxslt it looks for it in /usr/lib/libxslt.so BUT I need it to look in /lib64 (which is linked to from /usr/lib64) but the ./configure script does not catch that. _THIS_ bug-report is about trying to switch ABIs (and using a three stage compile so it has a chance of working). When I tried to do this I discovered that the compiler would seg-fault INSTEAD of giving a correct error message. --- Here is the result of my attempt to "prove" this: cd /cygdrive/c/gcc-4_2-branch-build/ $ gcc/xgcc -v Using built-in specs. Target: i686-pc-cygwin Configured with: ../gcc-4_2-branch/configure --verbose --enable-languages=c,ada,c++,fortran,java,objc,obj-c++ --with-tune=athlon-xp --prefix=/usr --enable-objc-gc --enable-concept-checks --disable-multilib --exec-prefix=/usr --sysconfdir=/etc --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-gxx-include-dir=/usr/include/c++/4.2 --enable-libstdcxx-debug --enable-static --enable-shared --enable-initfini-array --enable-__cxa_atexit --enable-threads=posix --enable-version-specific-runtime-libs --enable-libssp --enable-libmudflap --enable-libgomp --disable-werror --enable-nls --with-included-gettext --enable-decimal-float --with-long-double-128 --enable-debug --disable-sjlj-exceptions --enable-java-gc=boehm --with-x --x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib --enable-java-awt=gtk,xlib --enable-gtk-cairo --enable-qt-peer --enable-xmlj --enable-gconf-peer --enable-tool-wrappers --enable-portable-native-sync --enable-libgcj-multifile --with-stabs --enable-hash-synchronization --enable-gc-debug --enable-interpreter --with-system-zlib --enable-libada --with-tls --enable-win32-registry --with-cpu=athlon-xp --with-arch=athlon-xp --enable-checking Thread model: posix gcc version 4.2.0 20070427 (prerelease) $ Echo "Use xgcc (prerelease 20070427)" $ cd /cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/include $ /cygdrive/c/gcc-4_2-branch-build/./gcc/xgcc -shared-libgcc -B/cygdrive/c/gcc-4_2-branch-build/./gcc -nostdinc++ -L/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/src -L/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/src/.libs -B/usr//bin/ -B/usr//lib/ -isystem /usr//include -isystem /usr//sys-include -Winvalid-pch -Wno-deprecated -x c++-header -g -O2 -I/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/include/ -I/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/include -I/cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/libsupc++ -O2 -g /cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/include/precompiled/extc++.h -o bits/extc++.h.gch/O2g.gch In file included from /cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/include/precompiled/extc++.h:60: /cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/include/ext/pb_ds/exception.hpp: In function 'void pb_ds::__throw_join_error()': /cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/include/ext/pb_ds/exception.hpp:84: internal compiler error: Segmentation fault Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. make[4]: *** [bits/extc++.h.gch/O2g.gch] Error 1 make[4]: Leaving directory `/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/include' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3' make[2]: *** [all] Error 2 make[2]: Leaving directory `/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3' make[1]: *** [all-target-libstdc++-v3] Error 2 make[1]: Leaving directory `/cygdrive/c/gcc-4_2-branch-build' make: *** [all] Error 2 $ Echo "Use gcc (Cygwin 3.4.4) instead (remove leading "-B/cygdrive/c/gcc-4_2-branch-build/./gcc")." $ gcc -v Reading specs from /usr/lib/gcc/i686-pc-cygwin/3.4.4/specs Configured with: /usr/build/package/orig/test.respin/gcc-3.4.4-3/configure --verbose --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --enable-languages=c,ada,c++,d,f77,pascal,java,objc --enable-nls --without-included-gettext --enable-version-specific-runtime-libs --without-x --enable-libgcj --disable-java-awt --with-system-zlib --enable-interpreter --disable-libgcj-debug --enable-threads=posix --enable-java-gc=boehm --disable-win32-registry --enable-sjlj-exceptions --enable-hash-synchronization --enable-libstdcxx-debug Thread model: posix gcc version 3.4.4 (cygming special, gdc 0.12, using dmd 0.125) $ gcc -v -shared-libgcc -nostdinc++ -L/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/src -L/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/src/.libs -B/usr//bin/ -B/usr//lib/ -isystem /usr//include -isystem /usr//sys-include -Winvalid-pch -Wno-deprecated -x c++-header -g -O2 -I/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/include/ -I/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/include -I/cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/libsupc++ -O2 -g /cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/include/precompiled/extc++.h -o bits/extc++.h.gch/O2g.gch $ Echo "No errors or warnings - file is created OK" $ cd /cygdrive/c/gcc-4_2-branch-build/ $ make $ Echo "Make works for a while and creates a few more files until:" $/cygdrive/c/gcc-4_2-branch-build/./gcc/xgcc -shared-libgcc -B/cygdrive/c/gcc-4_2-branch-build/./gcc -nostdinc++ -L/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/src -L/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/src/.libs -B/usr//bin/ -B/usr//lib/ -isystem /usr//include -isystem /usr//sys-include -I/cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/../gcc -I/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/include/ -I/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/include -I/cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/libsupc++ -I/usr/local/include -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -g -O2 -c /cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/libsupc++/eh_alloc.cc -o eh_alloc.o /cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/libsupc++/eh_alloc.cc:1: warning: -ffunction-sections may affect debugging on some targets /cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/libsupc++/eh_alloc.cc: In function 'void __cxxabiv1::__cxa_free_exception(void*)': /cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/libsupc++/eh_alloc.cc:158: internal compiler error: Segmentation fault Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. make[4]: *** [eh_alloc.lo] Error 1 make[4]: Leaving directory `/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/libsupc++' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3' make[2]: *** [all] Error 2 make[2]: Leaving directory `/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3' make[1]: *** [all-target-libstdc++-v3] Error 2 make[1]: Leaving directory `/cygdrive/c/gcc-4_2-branch-build' make: *** [all] Error 2 $ Echo "Use gcc (Cygwin 3.4.4) instead (again) (remove leading "-B/cygdrive/c/gcc-4_2-branch-build/./gcc")." $ cd /cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/libsupc++ $ gcc -shared-libgcc -nostdinc++ -L/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/src -L/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/src/.libs -B/usr//bin/ -B/usr//lib/ -isystem /usr//include -isystem /usr//sys-include -I/cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/../gcc -I/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/include/ -I/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/include -I/cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/libsupc++ -I/usr/local/include -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -g -O2 -c /cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/libsupc++/eh_alloc.cc -o eh_alloc.o /cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/libsupc++/eh_alloc.cc:1: warning: -ffunction-sections may affect debugging on some targets $ Echo "No errors and only one warning - file is created OK (but there is no needed .lo!)" $ Echo "Note: attempting to go back to the root directory and simply type "make" $ Echo "does not work this time (since the Makefile wants the .lo files too) so $ Echo "remain in the directory and use "make -i" to build what we can and then $ Echo "go back and use "gcc" (instead of "gcc/xgcc") (via libtool) for the $ Echo "seg-faulted files." $ Echo "I put a newline between each of these since the bug-report window is not wide." /bin/sh ../libtool --tag CXX --tag disable-shared --mode=compile gcc -shared-libgcc -nostdinc++ -L/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/src -L/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/src/.libs -B/usr//bin/ -B/usr//lib/ -isystem /usr//include -isystem /usr//sys-include -I/cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/../gcc -I/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/include/ -I/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/include -I/cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/libsupc++ -I/usr/local/include -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -g -O2 -c -o eh_alloc.lo /cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/libsupc++/eh_alloc.cc /bin/sh ../libtool --tag CXX --tag disable-shared --mode=compile gcc -shared-libgcc -nostdinc++ -L/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/src -L/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/src/.libs -B/usr//bin/ -B/usr//lib/ -isystem /usr//include -isystem /usr//sys-include -I/cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/../gcc -I/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/include/ -I/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/include -I/cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/libsupc++ -I/usr/local/include -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -g -O2 -c -o eh_catch.lo /cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/libsupc++/eh_catch.cc /bin/sh ../libtool --tag CXX --tag disable-shared --mode=compile gcc -shared-libgcc -nostdinc++ -L/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/src -L/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/src/.libs -B/usr//bin/ -B/usr//lib/ -isystem /usr//include -isystem /usr//sys-include -I/cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/../gcc -I/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/include/ -I/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/include -I/cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/libsupc++ -I/usr/local/include -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -g -O2 -c -o eh_globals.lo /cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/libsupc++/eh_globals.cc /bin/sh ../libtool --tag CXX --tag disable-shared --mode=compile gcc -shared-libgcc -nostdinc++ -L/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/src -L/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/src/.libs -B/usr//bin/ -B/usr//lib/ -isystem /usr//include -isystem /usr//sys-include -I/cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/../gcc -I/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/include/ -I/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/include -I/cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/libsupc++ -I/usr/local/include -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -g -O2 -c -o eh_personality.lo /cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/libsupc++/eh_personality.cc /bin/sh ../libtool --tag CXX --tag disable-shared --mode=compile gcc -shared-libgcc -nostdinc++ -L/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/src -L/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/src/.libs -B/usr//bin/ -B/usr//lib/ -isystem /usr//include -isystem /usr//sys-include -I/cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/../gcc -I/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/include/ -I/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/include -I/cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/libsupc++ -I/usr/local/include -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -g -O2 -c -o eh_terminate.lo /cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/libsupc++/eh_terminate.cc /bin/sh ../libtool --tag CXX --tag disable-shared --mode=compile gcc -shared-libgcc -nostdinc++ -L/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/src -L/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/src/.libs -B/usr//bin/ -B/usr//lib/ -isystem /usr//include -isystem /usr//sys-include -I/cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/../gcc -I/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/include/ -I/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/include -I/cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/libsupc++ -I/usr/local/include -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -g -O2 -c -o guard.lo /cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/libsupc++/guard.cc /bin/sh ../libtool --tag CXX --tag disable-shared --mode=compile gcc -shared-libgcc -nostdinc++ -L/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/src -L/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/src/.libs -B/usr//bin/ -B/usr//lib/ -isystem /usr//include -isystem /usr//sys-include -I/cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/../gcc -I/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/include/ -I/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/include -I/cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/libsupc++ -I/usr/local/include -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -g -O2 -c -o new_op.lo /cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/libsupc++/new_op.cc /bin/sh ../libtool --tag CXX --tag disable-shared --mode=compile gcc -shared-libgcc -nostdinc++ -L/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/src -L/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/src/.libs -B/usr//bin/ -B/usr//lib/ -isystem /usr//include -isystem /usr//sys-include -I/cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/../gcc -I/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/include/ -I/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/include -I/cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/libsupc++ -I/usr/local/include -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -g -O2 -c -o new_opnt.lo /cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/libsupc++/new_opnt.cc /bin/sh ../libtool --tag CXX --tag disable-shared --mode=compile gcc -shared-libgcc -nostdinc++ -L/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/src -L/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/src/.libs -B/usr//bin/ -B/usr//lib/ -isystem /usr//include -isystem /usr//sys-include -I/cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/../gcc -I/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/include/ -I/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/include -I/cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/libsupc++ -I/usr/local/include -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -g -O2 -c -o new_opv.lo /cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/libsupc++/new_opv.cc /bin/sh ../libtool --tag CXX --tag disable-shared --mode=compile gcc -shared-libgcc -nostdinc++ -L/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/src -L/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/src/.libs -B/usr//bin/ -B/usr//lib/ -isystem /usr//include -isystem /usr//sys-include -I/cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/../gcc -I/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/include/ -I/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/include -I/cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/libsupc++ -I/usr/local/include -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -g -O2 -c -o vec.lo /cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/libsupc++/vec.cc /bin/sh ../libtool --tag CXX --tag disable-shared --mode=compile gcc -shared-libgcc -nostdinc++ -L/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/src -L/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/src/.libs -B/usr//bin/ -B/usr//lib/ -isystem /usr//include -isystem /usr//sys-include -I/cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/../gcc -I/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/include/ -I/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/include -I/cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/libsupc++ -I/usr/local/include -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -g -O2 -c -o vterminate.lo /cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/libsupc++/vterminate.cc $ cd /cygdrive/c/gcc-4_2-branch-build/ $ make $ Echo "Make works for a while and creates a few more files until:" /cygdrive/c/gcc-4_2-branch-build/./gcc/xgcc -shared-libgcc -B/cygdrive/c/gcc-4_2-branch-build/./gcc -nostdinc++ -L/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/src -L/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/src/.libs -B/usr//bin/ -B/usr//lib/ -isystem /usr//include -isystem /usr//sys-include -I/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/include/ -I/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/include -I/cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/libsupc++ -I/usr/local/include -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -g -O2 -c /cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/src/bitmap_allocator.cc -o bitmap_allocator.o /cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/src/bitmap_allocator.cc:1: warning: -ffunction-sections may affect debugging on some targets /cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/src/bitmap_allocator.cc: In member function 'void __gnu_cxx::free_list::_M_clear()': /cygdrive/C/makecygwin/gcc-4_2-branch/libstdc++-v3/src/bitmap_allocator.cc:120: internal compiler error: Segmentation fault Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. make[4]: *** [bitmap_allocator.lo] Error 1 make[4]: Leaving directory `/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3/src' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3' make[2]: *** [all] Error 2 make[2]: Leaving directory `/cygdrive/c/gcc-4_2-branch-build/i686-pc-cygwin/libstdc++-v3' make[1]: *** [all-target-libstdc++-v3] Error 2 make[1]: Leaving directory `/cygdrive/c/gcc-4_2-branch-build' make: *** [all] Error 2 What is this guy doing you ask? (I _did_ read gcc-4_2-branch\libstdc++-v3\docs\html\abi.html) The _POINT_ I am making is that gcc/xgcc (three stage compiled) _CAN_ compile "some" of these files but on others it produces a segmentation fault. Cygwin's gcc 3.4.4 is able to compile the seg-faulted ones and they can all be linked into libraries without any trouble. Some files gcc-4_2 likes, and some cause a seg-fault. It is _incorrect_ behavior of GCC 4.2.0 (20070427) to print on the screen the words "internal compiler error: Segmentation fault". It must print an error message of it's own choosing. If it refuses to compile the file because it dislikes to produce a new ABI then it can say that - but "Segmentation fault" is not correct operation. If it won't do it then how do we switch ABIs ? What I have "proved" is that there is some un-checked condition that is falling through and doing something that causes a seg-fault. In the old days that would hang your computer and you would need to re-boot. I did turn up this info: grep -r sjlj-exceptions ../gcc-4_2-branch/* ../makecygwin/gcc-4_2-branch/gcc/testsuite/ChangeLog: * g++.old-deja/g++.eh/crash3.C: Don't use -fsjlj-exceptions. ../makecygwin/gcc-4_2-branch/gcc/testsuite/g++.old-deja/g++.eh/crash3.C:// Used to use -fsjlj-exceptions, but that isn't an option anymore. ../makecygwin/gcc-4_2-branch/gcc/testsuite/g++.old-deja/g++.eh/vbase3.C:// Used to use -fsjlj-exceptions, but that isn't an option anymore. Perhaps we need someone to write a few more testcases to catch this undefined behaviour and print a "real" error message of what the complaint is instead of saying seg-fault. It makes it sound like it is writing to memory it does not own. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31761