[fpc-devel] AArch64 port committed to svn trunk

Edmund Grimley Evans edmund.grimley.evans at gmail.com
Sat May 9 11:16:27 CEST 2015

Thanks for those explanations.

I modified packages/fpmkunit/src/fpmkunit.pp and
utils/fpcm/fpcmmain.pp by analogy with revisions 29899 and 29902, then:

make all
utils/fpcm/bin/i386-linux/fpcmake -Tall -r
make all OS_TARGET=linux CPU_TARGET=aarch64

After a while it objects to a missing aarch64/prt0.as, but it has
already made compiler/ppcrossa64. Naturally, this is still a Darwin

$ compiler/ppcrossa64 /dev/null 
Free Pascal Compiler version 3.1.1 [2015/05/09] for aarch64
Copyright (c) 1993-2015 by Florian Klaempfl and others
Target OS: Darwin for AArch64

Now I think this might be because of the code in compiler/systems.pas
with the comment "change to Linux" ... so I do that, and I add
system_aarch64_linux to the list in compiler/systems.inc. (Note, by
the way, that "{ 85 }" occurs twice in that file. Is that a bug?)

Now I get:

$ compiler/ppcrossa64 /dev/null 
Fatal: Internal error 2004121202

Now this is perhaps not surprising as I know I have to modify
compiler/systems/i_linux.pas and compiler/systems/t_linux.pas,
presumably by analogy with [it]_bsd.pas, but I find I can put whatever
I like in those files bracketed with {$ifdef aarch64} or {$ifdef
cpuaarch64} and it has no effect because those symbols are never
defined there, it seems.

So something fundamental is still missing.

Any suggestions?

(I haven't modified compiler/aarch64/agcpugas.pas yet, but I don't
think I've got that far yet, and those symbols are not mentioned in
that file.)



More information about the fpc-devel mailing list