[fpc-pascal] VASM upgrade to 1.9 breaks cross compiler build

Norman Dunbar Norman at dunbar-it.co.uk
Tue Apr 18 17:54:59 CEST 2023


Hi Pierre,

> could you please be a little more specific about the exact version
> of the compiler and the make command line you are using?

I'm, on 64 bit Linux Mint 21.1 (Vera) all patches applied.

I'm using the latest Linux x86-64 version of FPC. I have the latest 
source code from gitlab, which appears to be 3.3.1, I run the following 
commands to perform a build:


cd ~/SourceCode/fpc

make clean OS_TARGET=sinclairql CPU_TARGET=m68k

make crossall OS_TARGET=sinclairql CPU_TARGET=m68k


### All on one line!
make crossinstall OS_TARGET=sinclairql CPU_TARGET=m68k 
INSTALL_PREFIX="/home/norman/bin"

I see that you have some options on your make command, which I've never 
had to use in the past when building the compiler. Hang on while I retest...

Nope, still fails.

I rebuilt the assembler with release 1.9c and installed it in the usual 
manner, which has always worked.

When I rebuild the compiler, with a "make clean" followed by a "make 
crossall" as per your command above, it spits out numerous "warning 
1007" messages.

The start of all the problems is this:

make[4]: Entering directory '/data/SourceCode/fpc/rtl/sinclairql'

/usr/bin/mkdir -p /data/SourceCode/fpc/rtl/units/m68k-sinclairql

/data/SourceCode/fpc/compiler/ppcross68k -Ur -Tsinclairql -Pm68k 
-XPm68k-sinclairql- -Ur -Xs -O2 -n -Fi../inc -Fi../m68k -Fim68k -FE. 
-FU/data/SourceCode/fpc/rtl/units/m68k-sinclairql -n -vx -dm68k 
-dRELEASE  -Us -Sg @rtl.cfg system.pp

Executing "/usr/local/bin/m68k-sinclairql-vasmm68k_std" with command 
line "-quiet -elfregs -gas -Felf -m68000 -o 
/data/SourceCode/fpc/rtl/units/m68k-sinclairql/system.o 
/data/SourceCode/fpc/rtl/units/m68k-sinclairql/system.s"

warning 1007 in line 4 of 
"/data/SourceCode/fpc/rtl/units/m68k-sinclairql/system.s": scratch at 
end of line
 >.section .text.n_system_$$_mt_frjob$longint$longint,"awx"


... this repeats for aome time up until:


warning 1007 in line 73309 of 
"/data/SourceCode/fpc/rtl/units/m68k-sinclairql/system.s": scratch at 
end of line

 >.section .data.n_RTTI_$SYSTEM_$$_QLCONHANDLE,"aw"

system.pp(438) Error: Error while assembling exitcode 1
system.pp(438) Fatal: There were 2 errors compiling module, stopping
Fatal: Compilation aborted

This doesn't happen with the 1.8 releases of vasm. There are no "warning 
1007" messages with that one and everything compiles happily.

With the 1.8x releases, I get this instead:

make[4]: Entering directory '/data/SourceCode/fpc/rtl/sinclairql'

/usr/bin/mkdir -p /data/SourceCode/fpc/rtl/units/m68k-sinclairql

/data/SourceCode/fpc/compiler/ppcross68k -Ur -Tsinclairql -Pm68k 
-XPm68k-sinclairql- -Ur -Xs -O2 -n -Fi../inc -Fi../m68k -Fim68k -FE. 
-FU/data/SourceCode/fpc/rtl/units/m68k-sinclairql -n -vx -dm68k 
-dRELEASE  -Us -Sg @rtl.cfg system.pp

Executing "/usr/local/bin/m68k-sinclairql-vasmm68k_std" with command 
line "-quiet -elfregs -gas -Felf -m68000 -o 
/data/SourceCode/fpc/rtl/units/m68k-sinclairql/system.o 
/data/SourceCode/fpc/rtl/units/m68k-sinclairql/system.s"

It then proceeds to compile the remaining "pp" files.


If it helps, I built the vasm assembler as follows:

wget http://sun.hasenbraten.de/vasm/release/vasm.tar.gz

tar -xzf vasm.tar.gz

cd vasm

make clean CPU=m68k SYNTAX=std

make CPU=m68k SYNTAX=std

sudo cp vasmm68k_std /usr/local/bin/

cd /usr/local/bin

sudo ln -s vasmm68k_std m68k-sinclairql-vasmm68k_std



Cheers,
Norm.



More information about the fpc-pascal mailing list