------- Comment #20 from mkoeppe at gmx dot de 2006-09-09 19:53 ------- Hi all,
as being pointed from PR 28968 to this one, I now tested "make bootstrap" with several gcc versions on native Interix/SFU 3.5 on W2K-SP4. The bootstrap compiler is interix gcc 3.3. In particular I tested - gcc-3.3.6 - gcc-3.4.6 - gcc-4.0.3 - gcc-4.1.1 - gcc-4.2 (20060709, currently in Debian Linux) All these 5 versions I configured with $ ../src/configure \ --enable-languages=c,c++ \ --enable-threads=posix \ --with-stabs \ --enable-nls \ --enable-shared \ --disable-libssp \ --with-gnu-as \ --with-gnu-ld $ gmake bootstrap Results are as follows: gcc-3.3.6: bootstrap finished successfully, currently I did no further tests. gcc-3.4.6: as 3.3.6, no further tests either gcc-4.0.3: fails gcc-4.1.1: fails gcc-4.2: fails failure details: gcc-4.0.3: ========== fails at gcc/c-parse.{c,y} [...] Bootstrapping the compiler gmake[1]: Entering directory `/tmp/gcc-4.0/build/gcc' gmake CC=" stage2/xgcc -Bstage2/ -B/usr/local/i586-pc-interix3/bin/" CC_FOR_BUILD=" stage2 STAGE_PREFIX=stage2/ \ ADAFLAGS="" CFLAGS="-g -O2" LDFLAGS="" WARN_CFLAGS="\$(GCC_WARN_CFLAGS)" STRICT_W CFLAGS="-g -O2" WERROR="" gmake[2]: Entering directory `/tmp/gcc-4.0/build/gcc' stage2/xgcc -Bstage2/ -B/usr/local/i586-pc-interix3/bin/ -c -D__INTERIX -D_ALL_SOURCE -g c-parse.c:2218:12: error: #if with no expression c-parse.c:2328:20: error: #if with no expression c-parse.c: In function 'yyparse': c-parse.c:2534: error: 'yystacksize' undeclared (first use in this function) c-parse.c:2534: error: (Each undeclared identifier is reported only once c-parse.c:2534: error: for each function it appears in.) c-parse.c:2538: warning: ISO C90 forbids mixed declarations and code [...] c-parse.y:2838: warning: implicit declaration of function 'OBJC_NEED_RAW_IDENTIFIER' c-parse.y:2856: warning: 'return' with no value, in function returning non-void c-parse.y:2860: warning: 'return' with no value, in function returning non-void c-parse.y:2863: warning: 'return' with no value, in function returning non-void c-parse.y:2881: error: syntax error before ')' token c-parse.y:2884: warning: this function may return with or without a value c-parse.y: In function 'yylex': c-parse.y:2890: warning: statement with no effect c-parse.y:2892: warning: statement with no effect c-parse.y: In function 'yyprint': c-parse.y:2913: warning: implicit declaration of function 'IDENTIFIER_POINTER' c-parse.y:2914: warning: format '%s' expects type 'char *', but argument 3 has type 'int' c-parse.y:2918: warning: format '%s' expects type 'char *', but argument 3 has type 'int' c-parse.y:2922: error: syntax error before ',' token In file included from c-parse.y:2963: ./gt-c-parse.h: At top level: ./gt-c-parse.h:30: error: syntax error before ',' token ./gt-c-parse.h:32: warning: missing initializer ./gt-c-parse.h:32: warning: (near initialization for 'gt_ggc_r_gt_c_parse_h[0].cb') ./gt-c-parse.h:37: error: 'gt_ggc_mx_tree_node' undeclared here (not in a function) ./gt-c-parse.h:39: error: 'gt_pch_nx_tree_node' undeclared here (not in a function) ./gt-c-parse.h:39: warning: missing initializer ./gt-c-parse.h:39: warning: (near initialization for 'gt_ggc_r_gt_c_parse_h[1].cb') gmake[2]: *** [c-parse.o] Error 1 gmake[2]: Leaving directory `/tmp/gcc-4.0/build/gcc' gmake[1]: *** [stage3_build] Error 2 gmake[1]: Leaving directory `/tmp/gcc-4.0/build/gcc' gmake: *** [bootstrap] Error 2 I didn't have a closer look into it yet. I use flex 2.5.4 and bison 2.1. - cosmetic: gcc/config/i386/host-cygwin.c is executable gcc-4.1.1: ========== - first PR 28968 is encountered, after working around this (sorry Andrew, I didn't yet implement the correct fix), - it fails because $(SHELL) in the Makefile is set to "sh", and therefore the shell scripts for as and nm are generated in targets stamp-as and stamp-nm with header "#!sh". Those scripts seem not to be executable on interix, manually changing them to "#!/bin/sh" let's continue the build. - after some time, it fails again. This time a process "collect2" is using 100% CPU (but only 1500KB) for ca. 50 minutes, then it suddenly stops without further information. Last output is: gmake[2]: Entering directory `/tmp/gcc-4.1/build/gcc' gawk -f ../../src/gcc/opt-gather.awk ../../src/gcc/c.opt ../../src/gcc/common.opt ../../src/gcc/config/i386/i386.opt > tmp-optionlist sh ../../src/gcc/../move-if-change tmp-optionlist optionlist optionlist is unchanged echo timestamp > s-options gawk -f ../../src/gcc/opt-functions.awk -f ../../src/gcc/opth-gen.awk \ < optionlist > tmp-options.h sh ../../src/gcc/../move-if-change tmp-options.h options.h options.h is unchanged echo timestamp > s-options-h stage1/xgcc -Bstage1/ -B/usr/local/i586-pc-interix3/bin/ -c -D__INTERIX -D_ALL_SOURCE -g -O2 -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -pedantic -Wno-long-long -Wno-variadic-macros -Wold-style-definition -Wmissing-format-attribute -DHAVE_CONFIG_H -DGENERATOR_FILE -I. -Ibuild -I../../src/gcc -I../../src/gcc/build -I../../src/gcc/../include -I../../src/gcc/../libcpp/include -D_ALL_SOURCE -I/usr/local/include -I/usr/local/ssl/include -o build/genmodes.o ../../src/gcc/genmodes.c stage1/xgcc -Bstage1/ -B/usr/local/i586-pc-interix3/bin/ -c -D__INTERIX -D_ALL_SOURCE -g -O2 -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -pedantic -Wno-long-long -Wno-variadic-macros -Wold-style-definition -Wmissing-format-attribute -DHAVE_CONFIG_H -DGENERATOR_FILE -I. -Ibuild -I../../src/gcc -I../../src/gcc/build -I../../src/gcc/../include -I../../src/gcc/../libcpp/include -D_ALL_SOURCE -I/usr/local/include -I/usr/local/ssl/include -o build/errors.o ../../src/gcc/errors.c stage1/xgcc -Bstage1/ -B/usr/local/i586-pc-interix3/bin/ -D__INTERIX -D_ALL_SOURCE -g -O2 -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -pedantic -Wno-long-long -Wno-variadic-macros -Wold-style-definition -Wmissing-format-attribute -DHAVE_CONFIG_H -DGENERATOR_FILE -o build/genmodes \ build/genmodes.o build/errors.o ../build-i586-pc-interix3/libiberty/libiberty.a [wait 50min] gmake[2]: *** [build/genmodes] Error 1 gmake[2]: Leaving directory `/tmp/gcc-4.1/build/gcc' gmake[1]: *** [stage2_build] Error 2 gmake[1]: Leaving directory `/tmp/gcc-4.1/build/gcc' gmake: *** [bootstrap] Error 2 - cosmetic: gcc/config/i386/{host-cygwin,winnt-cxx,winnt-stubs}.c are executable gcc-4.2 (20060709): =================== here, at the very beginning builddir/gcc/Makefile is not created. It says: config.status: creating Makefile sed: cannot allocate memory It is the original interix version of sed. The machine used to build all the compilers has 2GB RAM, and during the builds, there is still over 1GB free. If there is interest, I can do further tests on request. Martin -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15212