Waldek Hebisch a écrit:
I have now "almost ready" experimental gcc-4.1.0 port. There are some minor problems but basically 4.1.0 port should be now as good (or as bad...) as 4.0.3 port. I would like to fix some extra problems (most of them not related to port) and add some feature before I make a new snapshot, so ATM I have made port available as patches:
http://www.math.uni.wroc.pl/~hebisch/gpc/gpc-4.1-4.diff.gz
and
http://www.math.uni.wroc.pl/~hebisch/gpc/gcc-4.1-4.diff.gz
The patches are relative to gpc-20060325. gpc diff contains parser diffs. To avoid needless regeneration of parser file touch p/parse.[ch] after patching.
The port should build without problems. There are extra test failures (compared to 3.4.6):
asmtest.pas, fjf395[ab].pas -- test programs expect to much
fjf1102.pas -- unimplemented feature (but works with older older backends)
fjf403b.pas, fjf779[abefg].pas, nicola4c.pas -- port does not detect error/unused variables
fjf395[ab].pas -- wrong tests
fjf322.pas, fjf587b.pas -- spurious warnings
Build with DJGPP: no problem.
Results of the test suite
/djgpp/gnu/gcc-4.10/gcc/p/script/mkdir-p p/test { \ echo "# Automatically generated from /djgpp/gnu/gcc-4.10/gcc/p/test/Makefile."; \ echo "# Don't change manually."; \ echo ""; \ sed -e "s,^srcdir *=.*,srcdir=`cd /djgpp/gnu/gcc-4.10/gcc/p/test && pwd`,; \ s,^PC *=.*,PC=`pwd`/xgpc -B`pwd`/,; \ s,^TEST_PATHS *=.*,TEST_PATHS=-I ../rts --no-unit-path --unit-path=`cd /djgpp/gnu/gcc-4.10/gcc/p/units && pwd`," \ /djgpp/gnu/gcc-4.10/gcc/p/test/Makefile; \ } > p/test/Makefile || { rm -f p/test/Makefile; false; } echo timestamp > "p/stamp-test-Makefile" cd ./p/test && c:/djgpp/bin/make.exe MASK="" EXTRA_TEST_PFLAGS=" -gstabs" TEST_RUN_FLAGS="" "pascal.check-dejagnu" make.exe[1]: Entering directory `c:/djgpp/gnu/build.gcc/gcc/p/test' rm -f *.dat *.o *.s *.i *.gpi *.gpd *.gpc core a.out stderr.out *.exe testmake.tmp dummy.c dummy.pas dummy.out diff_cr*.tmp fixcr fixcr.exe rm -f todo/a.out todo/*.exe todo/*.o todo/*.s todo/*.i todo/*.gpi todo/*.gpd todo/core GP= PC="c:/djgpp/gnu/build.gcc/gcc/xgpc -Bc:/djgpp/gnu/build.gcc/gcc/" PFLAGS="-I ../rts --no-unit-path --unit-path=c:/djgpp/gnu/gcc-4.10/gcc/p/units --autobuild -g -O3 -W -Wall -Wno-unused -gstabs" PFLAGS_NO_PATHS="-g -O3 -W -Wall -Wno-unused -gstabs" SRCDIR="c:/djgpp/gnu/gcc-4.10/gcc/p/test" TEST_MAKE_FLAG=test-make-flag "c:/djgpp/gnu/gcc-4.10/gcc/p/test/test_run" | tee test_log | "c:/djgpp/gnu/gcc-4.10/gcc/p/test/test_sum" -d Test Run By dosuser on 2006-04-11 21:22:08 Native configuration is djgpp (KNAUTIE)
=== gpc tests ===
Running target any Running testsuite ...
FAIL: asmtest.pas UNSUPPORTED: fjf165a.pas FAIL: fjf322.pas FAIL: fjf395a.pas FAIL: fjf395b.pas FAIL: fjf403b.pas FAIL: fjf563e.pas FAIL: fjf587b.pas FAIL: fjf779a.pas FAIL: fjf779b.pas FAIL: fjf779e.pas FAIL: fjf779f.pas FAIL: fjf779g.pas FAIL: nicola4c.pas
=== gpc Summary ===
# of tests 5070 # of expected passes 5056 # of unexpected failures 13 # of unsupported tests 1
c:/djgpp/gnu/build.gcc/gcc/xgpc version 20060325, based on gcc-4.1.0 make.exe[1]: Leaving directory `c:/djgpp/gnu/build.gcc/gcc/p/test'
Seems to be as you expected, except for the test fjf1102.pas which is not included. Looking into your abovementioned diff, it contains only
Only in gpc/p/test: fjf1102.pas Only in gpc/p/test: fjf1103.pas Only in gpc/p/test: fjf1104.pas
Notice that I have built inavertendly with the CEPHES long double library added to -lm (DJGPP does not support long double math standard functions, only basic arithmetics +-*/): This explains why the longr2.pas test succeeds, contrary to usual. In fact for my personal work, I work always like this, after a new compilation of gcc with this library included.
Maurice