[fpc-devel] M68k: important milestone reached

Sven Barth pascaldragon at googlemail.com
Sat Feb 22 16:48:53 CET 2014

Hello together!

With revision 26849 which I just committed a few minutes ago an imporant 
milestone was reached for reviving the M68k port: the cross compiled 
compiler is now not only able to compile a program, but this program is 
also able to run correctly!

See here:

=== shell begin ===

$ cat ./fpctests/helloworld.pas
program helloworld;

   Writeln('Hello World');
$ ../run-qemu-m68k ./compiler/ppc68k -iSPSO
m68k linux
$ ../run-qemu-m68k compiler/ppc68k -n -Furtl/units/m68k-linux -viwn 
-Cpisac -O- -FEtestoutput -XPm68k-elf- -sh ./fpctests/helloworld.pas
$ ./testoutput/ppas.sh
Assembling helloworld
Linking testoutput/helloworld
m68k-elf-ld: warning: testoutput/link.res contains output sections; did 
you forget -T?
$ ../run-qemu-m68k ./testoutput/helloworld
Hello World

=== shell end ===

- run-qemu-m68k is a shell script that calls qemu-m68k which allows me 
to run m68k-linux binaries on my x86_64 linux system (works on any other 
Linux architecture supported by QEMU as well) [this is QEMU's user space 
- I need to use -sh (thus generating the ppas.sh script), because QEMU 
does not seem to allow me to exec a non m68k program

That the compiler is now working shows already that the work Charlie and 
me have done on the code generator has finally paid of and that it's 
nearing production quality again. There are still around 210 test suite 
errors for the full suite, but quite some are related to the one main 
problem that still exists: linking to libraries. Once Charlie and/or me 
have managed to set up the necessary C libraries we can fix this problem 
to have the m68k port reach the state of the old times again. :D

After that the main work on m68k will switch to optimizations and 
maybe/likely revival of other m68k RTLs (Amiga, Atari, Mac OS, NetBSD) 
:D Of course an embedded target will be a nice to have as well ;)


More information about the fpc-devel mailing list