View Issue Details

IDProjectCategoryView StatusLast Update
0036694FPCUtilitiespublic2020-02-14 18:27
ReporterJan BrunsAssigned ToFlorian 
PrioritynormalSeverityminorReproducibilityhave not tried
Status resolvedResolutionno change required 
Product Version3.0.4Product Build 
Target VersionFixed in Version 
Summary0036694: Regression tests don't work
DescriptionAs requested in 0036666

Expected behaviour:
The commands given in "steps to reproduce" to initiate the test using the specified compiler.

Observed behaviour:
Depending on local fpc.cfg (-M switch), the deepest run gives the output shwn in "additional info".
Steps To ReproduceAs normal user:

svn co https://svn.freepascal.org/svn/fpc/trunk fpc
cd fpc
cd tests
make full TEST_FPC=MY_FPC_COMPILER
Additional Information

jan@rechner2a:~/svn/fpc/tests$ make full TEST_FPC=/usr/lib/x86_64-linux-gnu/fpc/3.0.4/ppcx64
make clean
make[1]: Verzeichnis „/home/jan/svn/fpc/tests“ wird betreten
/usr/bin/rm -f
/usr/bin/rm -f gparmake createlst gparmake.o createlst.o gparmake.bc createlst.bclibpgparmake.a libpcreatelst.a libimpgparmake.a libimpcreatelst.a
/usr/bin/rm -rf gparmake.dbg createlst.dbg
/usr/bin/rm -f fpcmade.x86_64-linux *x86_64-linux.fpm Package.fpc *.s
/usr/bin/rm -f script*.res link*.res *_script.res *_link.res
/usr/bin/rm -f ./ppas.sh *_ppas.sh ppas.sh ppaslink.sh
make clean_test CPU_TARGET=x86_64 OS_TARGET=linux SUBARCH=
make[2]: Verzeichnis „/home/jan/svn/fpc/tests“ wird betreten
/usr/bin/rm -rf output/x86_64-linux
/usr/bin/rm -f core gmon.out testprep-stamp.x86_64-linux dotgz.sh
make[2]: Verzeichnis „/home/jan/svn/fpc/tests“ wird verlassen
make -C tstunits clean CPU_TARGET=x86_64 OS_TARGET=linux SUBARCH=
make[2]: Verzeichnis „/home/jan/svn/fpc/tests/tstunits“ wird betreten
/usr/bin/rm -rf x86_64-linux
/usr/bin/rm -rf /home/jan/svn/fpc/tests/tstunits/tmp
/usr/bin/rm -f rtl-stamp.x86_64-linux
/usr/bin/rm -f units/x86_64-linux/erroru.ppu units/x86_64-linux/popuperr.ppu units/x86_64-linux/ptest.ppu
/usr/bin/rm -rf units
/usr/bin/rm -rf bin
/usr/bin/rm -f *.o *.bc *.ppu *.rst *.s *.a *.so *.ppl
/usr/bin/rm -rf *.sl
/usr/bin/rm -f fpcmade.* Package.fpc *.fpm
/usr/bin/rm -f script*.res link*.res *_script.res *_link.res
/usr/bin/rm -f ./ppas.sh *_ppas.sh ppas.sh ppaslink.sh
/usr/bin/rm -rf x86_64-linux
/usr/bin/rm -rf /home/jan/svn/fpc/tests/tstunits/tmp
/usr/bin/rm -f fpcunit-stamp.x86_64-linux
/usr/bin/rm -rf x86_64-linux
/usr/bin/rm -rf /home/jan/svn/fpc/tests/tstunits/tmp
/usr/bin/rm -f packages-stamp.x86_64-linux
make[2]: Verzeichnis „/home/jan/svn/fpc/tests/tstunits“ wird verlassen
/usr/bin/rm -f filelisttest.lst filelisttbs.lst filelisttbf.lst filelistwebtbs.lst filelistwebtbf.lst
make[1]: Verzeichnis „/home/jan/svn/fpc/tests“ wird verlassen
make allexectests
make[1]: Verzeichnis „/home/jan/svn/fpc/tests“ wird betreten
make[2]: Verzeichnis „/home/jan/svn/fpc/tests“ wird betreten
make[2]: „units/x86_64-linux“ ist bereits aktuell.
make[2]: Verzeichnis „/home/jan/svn/fpc/tests“ wird verlassen
/usr/bin/ppcx64 -FE. utils/createlst.pp
Free Pascal Compiler version 3.0.4+dfsg-22 [2019/01/24] for x86_64
Copyright (c) 1993-2017 by Florian Klaempfl and others
Target OS: Linux for x86-64
Compiling utils/createlst.pp
createlst.pp(40,9) Warning: unreachable code
Linking ./createlst
/usr/bin/ld.bfd: warning: ./link.res contains output sections; did you forget -T?
72 lines compiled, 0.1 sec
1 warning(s) issued
make[2]: Verzeichnis „/home/jan/svn/fpc/tests“ wird betreten
make[2]: „units/x86_64-linux“ ist bereits aktuell.
make[2]: Verzeichnis „/home/jan/svn/fpc/tests“ wird verlassen
/usr/bin/ppcx64 -FE. utils/gparmake.pp
Free Pascal Compiler version 3.0.4+dfsg-22 [2019/01/24] for x86_64
Copyright (c) 1993-2017 by Florian Klaempfl and others
Target OS: Linux for x86-64
Compiling utils/gparmake.pp
gparmake.pp(49,3) Note: Local variable "FileList" not used
Linking ./gparmake
/usr/bin/ld.bfd: warning: ./link.res contains output sections; did you forget -T?
207 lines compiled, 0.2 sec
1 note(s) issued
make[2]: Verzeichnis „/home/jan/svn/fpc/tests“ wird betreten
/usr/bin/mkdir -p output/x86_64-linux
make[2]: Verzeichnis „/home/jan/svn/fpc/tests“ wird verlassen
make gparmake_allexectests
make[2]: Verzeichnis „/home/jan/svn/fpc/tests“ wird betreten
make -C utils utils
make[3]: Verzeichnis „/home/jan/svn/fpc/tests/utils“ wird betreten
make[3]: Verzeichnis „/home/jan/svn/fpc/tests/utils“ wird verlassen
make -C tstunits FPC_VERSION= FPC=/usr/lib/x86_64-linux-gnu/fpc/3.0.4/ppcx64 NATIVE_FPC=/usr/bin/ppcx64 CPU_TARGET=x86_64 OS_TARGET=linux SUBARCH= 'OPT= -Fd' CCOMPILER=/usr/bin/gcc BINUTILSPREFIX=
make[3]: Verzeichnis „/home/jan/svn/fpc/tests/tstunits“ wird betreten
make -C ../../rtl all 'OPT=-Fd -n' 'CROSSOPT=' FPC=/usr/lib/x86_64-linux-gnu/fpc/3.0.4/ppcx64
make[4]: Verzeichnis „/home/jan/svn/fpc/rtl“ wird betreten
make -C linux all
make[5]: Verzeichnis „/home/jan/svn/fpc/rtl/linux“ wird betreten
make[5]: Verzeichnis „/home/jan/svn/fpc/rtl/linux“ wird verlassen
make[4]: Verzeichnis „/home/jan/svn/fpc/rtl“ wird verlassen
make -C ../../rtl install INSTALL_PREFIX=/home/jan/svn/fpc/tests/tstunits/tmp INSTALL_UNITDIR=/home/jan/svn/fpc/tests/tstunits/x86_64-linux OPT= CROSSOPT= FPC=/usr/lib/x86_64-linux-gnu/fpc/3.0.4/ppcx64
make[4]: Verzeichnis „/home/jan/svn/fpc/rtl“ wird betreten
make -C linux all
make[5]: Verzeichnis „/home/jan/svn/fpc/rtl/linux“ wird betreten
make[5]: Verzeichnis „/home/jan/svn/fpc/rtl/linux“ wird verlassen
/usr/bin/fpcmake -p -Tx86_64-linux Makefile.fpc
Processing Makefile.fpc
 Writing Package.fpc
/usr/bin/install -m 755 -d /home/jan/svn/fpc/tests/tstunits/x86_64-linux
/usr/bin/install -c -m 644 Package.fpc /home/jan/svn/fpc/tests/tstunits/x86_64-linux
make -C linux install
make[5]: Verzeichnis „/home/jan/svn/fpc/rtl/linux“ wird betreten
/usr/bin/install -m 755 -d /home/jan/svn/fpc/tests/tstunits/x86_64-linux
/usr/bin/install -c -m 644 ../../rtl/units/x86_64-linux/prt0.o ../../rtl/units/x86_64-linux/dllprt0.o ../../rtl/units/x86_64-linux/cprt0.o ../../rtl/units/x86_64-linux/gprt0.o ../../rtl/units/x86_64-linux/abitag.o /home/jan/svn/fpc/tests/tstunits/x86_64-linux
/usr/bin/install -m 755 -d /home/jan/svn/fpc/tests/tstunits/x86_64-linux
/usr/bin/install -c -m 644 ../../rtl/units/x86_64-linux/system.ppu ../../rtl/units/x86_64-linux/fpintres.ppu ../../rtl/units/x86_64-linux/si_prc.ppu ../../rtl/units/x86_64-linux/si_c.ppu ../../rtl/units/x86_64-linux/si_g.ppu ../../rtl/units/x86_64-linux/si_dll.ppu ../../rtl/units/x86_64-linux/uuchar.ppu ../../rtl/units/x86_64-linux/unixtype.ppu ../../rtl/units/x86_64-linux/ctypes.ppu ../../rtl/units/x86_64-linux/baseunix.ppu ../../rtl/units/x86_64-linux/strings.ppu ../../rtl/units/x86_64-linux/objpas.ppu ../../rtl/units/x86_64-linux/macpas.ppu ../../rtl/units/x86_64-linux/iso7185.ppu ../../rtl/units/x86_64-linux/extpas.ppu ../../rtl/units/x86_64-linux/syscall.ppu ../../rtl/units/x86_64-linux/unixutil.ppu ../../rtl/units/x86_64-linux/heaptrc.ppu ../../rtl/units/x86_64-linux/lineinfo.ppu ../../rtl/units/x86_64-linux/lnfodwrf.ppu ../../rtl/units/x86_64-linux/termio.ppu ../../rtl/units/x86_64-linux/unix.ppu ../../rtl/units/x86_64-linux/linux.ppu ../../rtl/units/x86_64-linux/initc.ppu ../../rtl/units/x86_64-linux/cmem.ppu ../../rtl/units/x86_64-linux/x86.ppu ../../rtl/units/x86_64-linux/ports.ppu ../../rtl/units/x86_64-linux/cpu.ppu ../../rtl/units/x86_64-linux/linuxvcs.ppu ../../rtl/units/x86_64-linux/sysutils.ppu ../../rtl/units/x86_64-linux/typinfo.ppu ../../rtl/units/x86_64-linux/math.ppu ../../rtl/units/x86_64-linux/charset.ppu ../../rtl/units/x86_64-linux/cpall.ppu ../../rtl/units/x86_64-linux/character.ppu ../../rtl/units/x86_64-linux/unixcp.ppu ../../rtl/units/x86_64-linux/getopts.ppu ../../rtl/units/x86_64-linux/errors.ppu ../../rtl/units/x86_64-linux/dl.ppu ../../rtl/units/x86_64-linux/dynlibs.ppu ../../rtl/units/x86_64-linux/types.ppu ../../rtl/units/x86_64-linux/sysconst.ppu ../../rtl/units/x86_64-linux/fpwidestring.ppu ../../rtl/units/x86_64-linux/cthreads.ppu ../../rtl/units/x86_64-linux/sortbase.ppu ../../rtl/units/x86_64-linux/classes.ppu ../../rtl/units/x86_64-linux/fgl.ppu ../../rtl/units/x86_64-linux/rtlconsts.ppu ../../rtl/units/x86_64-linux/dos.ppu ../../rtl/units/x86_64-linux/cwstring.ppu ../../rtl/units/x86_64-linux/fpcylix.ppu ../../rtl/units/x86_64-linux/softfpu.ppu ../../rtl/units/x86_64-linux/sfpux80.ppu ../../rtl/units/x86_64-linux/ufloatx80.ppu ../../rtl/units/x86_64-linux/sfpu128.ppu ../../rtl/units/x86_64-linux/ufloat128.ppu ../../rtl/units/x86_64-linux/exeinfo.ppu ../../rtl/units/x86_64-linux/cp1250.ppu ../../rtl/units/x86_64-linux/cp1251.ppu ../../rtl/units/x86_64-linux/cp1252.ppu ../../rtl/units/x86_64-linux/cp1253.ppu ../../rtl/units/x86_64-linux/cp1254.ppu ../../rtl/units/x86_64-linux/cp1255.ppu ../../rtl/units/x86_64-linux/cp1256.ppu ../../rtl/units/x86_64-linux/cp1257.ppu ../../rtl/units/x86_64-linux/cp1258.ppu ../../rtl/units/x86_64-linux/cp437.ppu ../../rtl/units/x86_64-linux/cp646.ppu ../../rtl/units/x86_64-linux/cp737.ppu ../../rtl/units/x86_64-linux/cp775.ppu ../../rtl/units/x86_64-linux/cp850.ppu ../../rtl/units/x86_64-linux/cp852.ppu ../../rtl/units/x86_64-linux/cp855.ppu ../../rtl/units/x86_64-linux/cp856.ppu ../../rtl/units/x86_64-linux/cp857.ppu ../../rtl/units/x86_64-linux/cp860.ppu ../../rtl/units/x86_64-linux/cp861.ppu ../../rtl/units/x86_64-linux/cp862.ppu ../../rtl/units/x86_64-linux/cp863.ppu ../../rtl/units/x86_64-linux/cp864.ppu ../../rtl/units/x86_64-linux/cp865.ppu ../../rtl/units/x86_64-linux/cp866.ppu ../../rtl/units/x86_64-linux/cp869.ppu ../../rtl/units/x86_64-linux/cp874.ppu ../../rtl/units/x86_64-linux/cp3021.ppu ../../rtl/units/x86_64-linux/cp8859_1.ppu ../../rtl/units/x86_64-linux/cp8859_2.ppu ../../rtl/units/x86_64-linux/cp8859_3.ppu ../../rtl/units/x86_64-linux/cp8859_4.ppu ../../rtl/units/x86_64-linux/cp8859_5.ppu ../../rtl/units/x86_64-linux/cp8859_6.ppu ../../rtl/units/x86_64-linux/cp8859_7.ppu ../../rtl/units/x86_64-linux/cp8859_8.ppu ../../rtl/units/x86_64-linux/cp8859_9.ppu ../../rtl/units/x86_64-linux/cp8859_10.ppu ../../rtl/units/x86_64-linux/cp8859_11.ppu ../../rtl/units/x86_64-linux/cp8859_13.ppu ../../rtl/units/x86_64-linux/cp8859_14.ppu ../../rtl/units/x86_64-linux/cp8859_15.ppu ../../rtl/units/x86_64-linux/cp8859_16.ppu ../../rtl/units/x86_64-linux/cpkoi8_r.ppu ../../rtl/units/x86_64-linux/cpkoi8_u.ppu ../../rtl/units/x86_64-linux/unicodedata.ppu ../../rtl/units/x86_64-linux/unicodenumtable.ppu /home/jan/svn/fpc/tests/tstunits/x86_64-linux
/usr/bin/install -c -m 644 ../../rtl/units/x86_64-linux/system.o ../../rtl/units/x86_64-linux/fpintres.o ../../rtl/units/x86_64-linux/si_prc.o ../../rtl/units/x86_64-linux/si_c.o ../../rtl/units/x86_64-linux/si_g.o ../../rtl/units/x86_64-linux/si_dll.o ../../rtl/units/x86_64-linux/uuchar.o ../../rtl/units/x86_64-linux/unixtype.o ../../rtl/units/x86_64-linux/ctypes.o ../../rtl/units/x86_64-linux/baseunix.o ../../rtl/units/x86_64-linux/strings.o ../../rtl/units/x86_64-linux/objpas.o ../../rtl/units/x86_64-linux/macpas.o ../../rtl/units/x86_64-linux/iso7185.o ../../rtl/units/x86_64-linux/extpas.o ../../rtl/units/x86_64-linux/unixutil.o ../../rtl/units/x86_64-linux/heaptrc.o ../../rtl/units/x86_64-linux/lineinfo.o ../../rtl/units/x86_64-linux/lnfodwrf.o ../../rtl/units/x86_64-linux/termio.o ../../rtl/units/x86_64-linux/unix.o ../../rtl/units/x86_64-linux/linux.o ../../rtl/units/x86_64-linux/initc.o ../../rtl/units/x86_64-linux/cmem.o ../../rtl/units/x86_64-linux/x86.o ../../rtl/units/x86_64-linux/ports.o ../../rtl/units/x86_64-linux/cpu.o ../../rtl/units/x86_64-linux/linuxvcs.o ../../rtl/units/x86_64-linux/sysutils.o ../../rtl/units/x86_64-linux/typinfo.o ../../rtl/units/x86_64-linux/math.o ../../rtl/units/x86_64-linux/charset.o ../../rtl/units/x86_64-linux/character.o ../../rtl/units/x86_64-linux/unixcp.o ../../rtl/units/x86_64-linux/getopts.o ../../rtl/units/x86_64-linux/errors.o ../../rtl/units/x86_64-linux/dl.o ../../rtl/units/x86_64-linux/dynlibs.o ../../rtl/units/x86_64-linux/types.o ../../rtl/units/x86_64-linux/sysconst.o ../../rtl/units/x86_64-linux/fpwidestring.o ../../rtl/units/x86_64-linux/cthreads.o ../../rtl/units/x86_64-linux/sortbase.o ../../rtl/units/x86_64-linux/classes.o ../../rtl/units/x86_64-linux/fgl.o ../../rtl/units/x86_64-linux/rtlconsts.o ../../rtl/units/x86_64-linux/dos.o ../../rtl/units/x86_64-linux/cwstring.o ../../rtl/units/x86_64-linux/fpcylix.o ../../rtl/units/x86_64-linux/softfpu.o ../../rtl/units/x86_64-linux/sfpux80.o ../../rtl/units/x86_64-linux/ufloatx80.o ../../rtl/units/x86_64-linux/sfpu128.o ../../rtl/units/x86_64-linux/ufloat128.o ../../rtl/units/x86_64-linux/exeinfo.o ../../rtl/units/x86_64-linux/cp1250.o ../../rtl/units/x86_64-linux/cp1251.o ../../rtl/units/x86_64-linux/cp1252.o ../../rtl/units/x86_64-linux/cp1253.o ../../rtl/units/x86_64-linux/cp1254.o ../../rtl/units/x86_64-linux/cp1255.o ../../rtl/units/x86_64-linux/cp1256.o ../../rtl/units/x86_64-linux/cp1257.o ../../rtl/units/x86_64-linux/cp1258.o ../../rtl/units/x86_64-linux/cp437.o ../../rtl/units/x86_64-linux/cp646.o ../../rtl/units/x86_64-linux/cp737.o ../../rtl/units/x86_64-linux/cp775.o ../../rtl/units/x86_64-linux/cp850.o ../../rtl/units/x86_64-linux/cp852.o ../../rtl/units/x86_64-linux/cp855.o ../../rtl/units/x86_64-linux/cp856.o ../../rtl/units/x86_64-linux/cp857.o ../../rtl/units/x86_64-linux/cp860.o ../../rtl/units/x86_64-linux/cp861.o ../../rtl/units/x86_64-linux/cp862.o ../../rtl/units/x86_64-linux/cp863.o ../../rtl/units/x86_64-linux/cp864.o ../../rtl/units/x86_64-linux/cp865.o ../../rtl/units/x86_64-linux/cp866.o ../../rtl/units/x86_64-linux/cp869.o ../../rtl/units/x86_64-linux/cp874.o ../../rtl/units/x86_64-linux/cp3021.o ../../rtl/units/x86_64-linux/cp8859_1.o ../../rtl/units/x86_64-linux/cp8859_2.o ../../rtl/units/x86_64-linux/cp8859_3.o ../../rtl/units/x86_64-linux/cp8859_4.o ../../rtl/units/x86_64-linux/cp8859_5.o ../../rtl/units/x86_64-linux/cp8859_6.o ../../rtl/units/x86_64-linux/cp8859_7.o ../../rtl/units/x86_64-linux/cp8859_8.o ../../rtl/units/x86_64-linux/cp8859_9.o ../../rtl/units/x86_64-linux/cp8859_10.o ../../rtl/units/x86_64-linux/cp8859_11.o ../../rtl/units/x86_64-linux/cp8859_13.o ../../rtl/units/x86_64-linux/cp8859_14.o ../../rtl/units/x86_64-linux/cp8859_15.o ../../rtl/units/x86_64-linux/cp8859_16.o ../../rtl/units/x86_64-linux/cpkoi8_r.o ../../rtl/units/x86_64-linux/cpkoi8_u.o ../../rtl/units/x86_64-linux/unicodedata.o ../../rtl/units/x86_64-linux/unicodenumtable.o /home/jan/svn/fpc/tests/tstunits/x86_64-linux
make[5]: Verzeichnis „/home/jan/svn/fpc/rtl/linux“ wird verlassen
make[4]: Verzeichnis „/home/jan/svn/fpc/rtl“ wird verlassen
/usr/bin/echo Compiled > rtl-stamp.x86_64-linux
/usr/lib/x86_64-linux-gnu/fpc/3.0.4/ppcx64 -n -FEx86_64-linux -Tlinux -Fd -Fu/home/jan/svn/fpc/tests/tstunits/x86_64-linux ../../packages/fcl-fpcunit/src/testutils
/usr/lib/x86_64-linux-gnu/fpc/3.0.4/ppcx64 -n -FEx86_64-linux -Tlinux -Fd -Fu/home/jan/svn/fpc/tests/tstunits/x86_64-linux ../../packages/fcl-fpcunit/src/fpcunit
/usr/bin/echo Compiled > fpcunit-stamp.x86_64-linux
make -C ../../packages all 'OPT=-Fd -n' 'CROSSOPT=' FPC=/usr/lib/x86_64-linux-gnu/fpc/3.0.4/ppcx64
make[4]: Verzeichnis „/home/jan/svn/fpc/packages“ wird betreten
./fpmake compile --localunitdir=.. --os=linux --cpu=x86_64 -o -Cg -o -Fd -o -n -o -dx86_64 --compiler=/usr/lib/x86_64-linux-gnu/fpc/3.0.4/ppcx64 -bu
[ 1%] Skipped package ami-extra which has been disabled for target x86_64-linux
[ 2%] Skipped package amunits which has been disabled for target x86_64-linux
[ 3%] Skipped package arosunits which has been disabled for target x86_64-linux
Start compiling package rtl-objpas for target x86_64-linux.
       Compiling rtl-objpas/BuildUnit_rtl_objpas.pp
       Compiling ./rtl-objpas/src/inc/rtti.pp
External command "/usr/lib/x86_64-linux-gnu/fpc/3.0.4/ppcx64 -Tlinux -FUrtl-objpas/units/x86_64-linux/ -Fu/home/jan/svn/fpc/rtl/units/x86_64-linux/ -Furtl-objpas/src/inc -Firtl-objpas/src/inc -Firtl-objpas/src/linux -Firtl-objpas/src/x86_64 -Firtl-objpas/src/common -Cg -Fd -n -dx86_64 -Sc -viq rtl-objpas/BuildUnit_rtl_objpas.pp" failed with exit code 256. Console output:
Target OS: Linux for x86-64
Compiling rtl-objpas/BuildUnit_rtl_objpas.pp
Compiling ./rtl-objpas/src/inc/rtti.pp
rtti.pp(119,5) Error: Fields cannot appear after a method or property definition, start a new visibility section first
rtti.pp(119,13) Fatal: Syntax error, ":" expected but "CLASS" found
Fatal: Compilation aborted

The installer encountered the following error:
Compilation of "BuildUnit_rtl_objpas.pp" failed
make[4]: *** [Makefile:1745: all] Fehler 1
make[4]: Verzeichnis „/home/jan/svn/fpc/packages“ wird verlassen
make[3]: *** [Makefile:2004: packages-stamp.x86_64-linux] Fehler 2
make[3]: Verzeichnis „/home/jan/svn/fpc/tests/tstunits“ wird verlassen
make[2]: *** [Makefile:2290: tstunits] Fehler 2
make[2]: Verzeichnis „/home/jan/svn/fpc/tests“ wird verlassen
make[1]: *** [Makefile:2519: allexectests] Fehler 2
make[1]: Verzeichnis „/home/jan/svn/fpc/tests“ wird verlassen
make: *** [Makefile:2652: full] Fehler 2

TagsNo tags attached.
Fixed in Revision
FPCOldBugId
FPCTarget-
Attached Files

Activities

J. Gareth Moreton

2020-02-12 04:38

developer   ~0121032

Last edited: 2020-02-12 04:39

View 2 revisions

You need to use the trunk compiler (version 3.3.1 or so), because 3.0.4 does not support generics (the compiler mistakes the word "generic" for a field name, hence the first error, and then the second error is because it expects a colon after the field name to define its type).

Thaddy de Koning

2020-02-12 09:50

reporter   ~0121038

Last edited: 2020-02-12 09:52

View 4 revisions

No. 3.0.4 does support generics. 2.x has generics and from 2.6.0 also delphi syntax generics.
FPC had generics before Delphi, hence Delphi syntax compatibility was introduced after Delphi also got generics.

I can reproduce the issue. It seems a real bug.

Thaddy de Koning

2020-02-12 09:56

reporter   ~0121039

Last edited: 2020-02-12 09:59

View 2 revisions

But *only* if I run the tests from trunk with a 3.0.4 compiler, and that is *wrong* of course.
If that is the case there is no issue. The trunk tests are of course only for trunk and not for 3.0.4!
[more edit]
Jan Bruns should check out the tests for 3.0.4, or use a - recent - trunk compiler with the tests in trunk.

Jan Bruns

2020-02-12 09:57

reporter   ~0121040

Wasn't 3.0 the first official release with generics support? It's been there for a while.
https://freepascal.org states "Version 3.0.4 is the latest stable version the Free Pascal."

Thaddy de Koning

2020-02-12 10:00

reporter   ~0121041

Last edited: 2020-02-12 10:02

View 2 revisions

No. 2.X and 2.6.0 for Delphi. See release notes.
https://wiki.freepascal.org/FPC_New_Features_2.6.0

I have edited my previous reply and took the trouble to check out the 3.0.4 tests.
You checked out trunk tests: these tests are for trunk! Did you really feed them to a 3.0.4 compiler? That is wrong.

Jan Bruns

2020-02-12 10:35

reporter   ~0121043

Ah. Well, if this is the solution, fine.
I don't get it anyway. Couldn't the test-controller have also been written using some very diffrent language, totally independent of fpc-versions?

NoName

2020-02-12 12:12

reporter   ~0121045

If you look at the line which fails 'generic class function From<T>(constref aValue: T): TValue; static; inline;' and then check the history (https://github.com/graemeg/freepascal/commit/0250d787cbb558e8787ba9162b656f88332015f0) you'll notice that it was added after FPC 3.0.x was released. You could also define NoGenericMethods to not use the problematic function, it's surrounded by '{$ifndef NoGenericMethods}' but it probably will fail at some other places due to not supported code in 3.0.4. Anyway, the problematic line was commit to trunk in 2017 which was forked to FPC 3.2.
Therefore you should use an appropriate compiler version (the version you made changes to) with the tests for this version and not mixing trunk tests with FPC 3.0.x!
Try to run with (path depends on your installed FPC version):
make full TEST_FPC=/usr/lib/x86_64-linux-gnu/fpc/3.2.0/ppcx64
or
make full TEST_FPC=/usr/lib/x86_64-linux-gnu/fpc/3.3.1/ppcx64

Thaddy de Koning

2020-02-12 13:24

reporter   ~0121047

The tests for 3.0.4 are in the 3.0.4 branch. It is that simple.

Jan, can you ask to close this?

Florian

2020-02-12 18:09

administrator   ~0121053

> I don't get it anyway. Couldn't the test-controller have also been written using some very diffrent language, totally independent of fpc-versions?

It is not a matter of the test controller but the makefile/compiler simply try to recompile everything as fpc/ contains after a build all units for 3.3.1 while you explicility pass a 3.0.4 compiler for being tested. So you have to test with something like:

make full TEST_FPC=$PWD/../compiler/ppcx64

I cannot remember why TEST_FPC needs to be passed explicitly and is not set equal to "FPC" automatically if it is not passed, but there was a reason.

Jan Bruns

2020-02-12 21:45

reporter   ~0121061

@Florian: So the current trunk rtl can only be compiled with an fpc not yet released? No problem, but very strange.

Florian

2020-02-12 21:57

administrator   ~0121062

Only the basic rtl of (bascially the part which is needed to compile the compiler and some utils, this basic rtl sits in fpc/rtl) of trunk can be compiled by the last release compiler for bootstrapping. rtl-objpas is part of packages and is seperated because it is not needed to build the compiler itself.

Thaddy de Koning

2020-02-12 22:12

reporter   ~0121064

Jan, the feature set of the language has evolved, so no wonder *new* tests will fail with an old compiler.
Simply match tests with the compiler version.

Jan Bruns

2020-02-14 11:21

reporter   ~0121096

Ah, got it. Part of the problem was the undocumented FPC=".." switch for hostcompiles, and I also mixed up OPT with TEST_OPT.
Maybe these four options (FPC,OPT,TEST_FPC,TEST_OPT) should get some more explicit mention in the readme.
 
For me, these calls seem to work:

svn checkout https://svn.freepascal.org/svn/fpc/branches/fixes_3_0 fpcfix
cd fpcfix
make all
cd tests
make full FPC="/home/jan/svn/fpcfix/compiler/ppcx64" OPT="-Fu/home/jan/svn/fpcfix/rtl/units/x86_64-linux -Fu/home/jan/svn/fpcfix/packages/rtl-objpas/units/x86_64-linux" TEST_FPC="/home/jan/svn/fpcfix/compiler/ppcx64" TEST_OPT="-Fu/home/jan/svn/fpcfix/rtl/units/x86_64-linux -Fu/home/jan/svn/fpcfix/packages/rtl-objpas/units/x86_64-linux"
make clean FPC="/home/jan/svn/fpcfix/compiler/ppcx64" OPT="-Fu/home/jan/svn/fpcfix/rtl/units/x86_64-linux -Fu/home/jan/svn/fpcfix/packages/rtl-objpas/units/x86_64-linux" TEST_FPC="/home/jan/svn/fpcfix/compiler/ppcx64" TEST_OPT="-Fu/home/jan/svn/fpcfix/rtl/units/x86_64-linux -Fu/home/jan/svn/fpcfix/packages/rtl-objpas/units/x86_64-linux"
make full FPC="/home/jan/svn/fpcfix/compiler/ppcx64" OPT="-Fu/home/jan/svn/fpcfix/rtl/units/x86_64-linux -Fu/home/jan/svn/fpcfix/packages/rtl-objpas/units/x86_64-linux" TEST_FPC="/home/jan/svn/abnuto.de/fpcsrc/3.0.4/build/pp2" TEST_OPT="-Fu/home/jan/svn/abnuto.de/fpcsrc/3.0.4/build/units -Fu/home/jan/svn/fpcfix/packages/rtl-objpas/units/x86_64-linux"

This way, I found a (already fixed) difference from original fpc3.0.4 to my patched one.

Sven Barth

2020-02-14 14:20

manager   ~0121097

The TEST_* defines are all documented in the readme.txt that's located in tests. They don't apply to the other makefiles we use.

Also you don't need to specifiy FPC and OPT when compiling the tests. Those you specify when compiling the compiler. Though your OPTs are not needed at all (both the OPT and TEST_OPT) because the makefiles take care of the unit paths (both when building the compiler and when running the tests).

So your workflow should be this:

make all FPMAKEOPT="-T X" -j X
cd tests
make clean full TEST_FPC=$(pwd)/../compiler/ppcx64 -j X

(with X being the number of parallel runs, usually the number of CPU cores)

Issue History

Date Modified Username Field Change
2020-02-12 03:08 Jan Bruns New Issue
2020-02-12 04:38 J. Gareth Moreton Note Added: 0121032
2020-02-12 04:39 J. Gareth Moreton Note Edited: 0121032 View Revisions
2020-02-12 09:50 Thaddy de Koning Note Added: 0121038
2020-02-12 09:50 Thaddy de Koning Note Edited: 0121038 View Revisions
2020-02-12 09:52 Thaddy de Koning Note Edited: 0121038 View Revisions
2020-02-12 09:52 Thaddy de Koning Note Edited: 0121038 View Revisions
2020-02-12 09:56 Thaddy de Koning Note Added: 0121039
2020-02-12 09:57 Jan Bruns Note Added: 0121040
2020-02-12 09:59 Thaddy de Koning Note Edited: 0121039 View Revisions
2020-02-12 10:00 Thaddy de Koning Note Added: 0121041
2020-02-12 10:02 Thaddy de Koning Note Edited: 0121041 View Revisions
2020-02-12 10:35 Jan Bruns Note Added: 0121043
2020-02-12 12:12 NoName Note Added: 0121045
2020-02-12 13:24 Thaddy de Koning Note Added: 0121047
2020-02-12 18:09 Florian Note Added: 0121053
2020-02-12 21:45 Jan Bruns Note Added: 0121061
2020-02-12 21:57 Florian Note Added: 0121062
2020-02-12 22:12 Thaddy de Koning Note Added: 0121064
2020-02-14 11:21 Jan Bruns Note Added: 0121096
2020-02-14 14:20 Sven Barth Note Added: 0121097
2020-02-14 18:27 Florian Assigned To => Florian
2020-02-14 18:27 Florian Status new => resolved
2020-02-14 18:27 Florian Resolution open => no change required
2020-02-14 18:27 Florian FPCTarget => -