Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / fpc-devel / 2015-05

aarch64-linux: PATCH: add aarch64-linux to fpmkunit and fpcmake

1 message · 1 person ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Edmund Grimley Evans

I'll be sending a sequence of patches that add aarch64-linux support to FPC. This is the first, or the second if you include the RelocType change in packages/fcl-res, which isn't AArch64-specific.

A big thank-you to Jonas Maebe for guiding me through this work and answering all my questions.

This tiny patch is for the build system and implies a big patch to all the Makefiles when fpcmake is run
(utils/fpcm/bin/*/fpcmake -Tall `find -name Makefile.fpc`).

diff --git a/packages/fpmkunit/src/fpmkunit.pp b/packages/fpmkunit/src/fpmkunit.pp index cd0dc07..4de0d54 100644
--- a/packages/fpmkunit/src/fpmkunit.pp
+++ b/packages/fpmkunit/src/fpmkunit.pp
@@ -186,7 +186,7 @@ Const
OSCPUSupported : array[TOS,TCpu] of boolean = (
{ os none i386 m68k ppc sparc x86_64 arm ppc64 avr armeb mips mipsel jvm i8086 aarch64 } { none } ( false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
- { linux } ( false, true, true, true, true, true, true, true, false, true , true , true , false, false, false),
+ { linux } ( false, true, true, true, true, true, true, true, false, true , true , true , false, false, true ), { go32v2 } ( false, true, false, false, false, false, false, false, false, false, false, false, false, false, false), { win32 } ( false, true, false, false, false, false, false, false, false, false, false, false, false, false, false), { os2 } ( false, true, false, false, false, false, false, false, false, false, false, false, false, false, false), @@ -2629,6 +2629,7 @@ begin

       x86_64:   result := GetGccDirArch('cpux86_64','-m64');
       powerpc:  result := GetGccDirArch('cpupowerpc','-m32');
       powerpc64:result := GetGccDirArch('cpupowerpc64','-m64');

+ aarch64: result := GetGccDirArch('cpuaarch64',''); end {case}

   else if OS = darwin then
     case CPU of

diff --git a/utils/fpcm/fpcmmain.pp b/utils/fpcm/fpcmmain.pp index 61a3efc..fead2e3 100644
--- a/utils/fpcm/fpcmmain.pp
+++ b/utils/fpcm/fpcmmain.pp
@@ -114,7 +114,7 @@ interface
{ This table is kept OS,Cpu because it is easier to maintain (PFV) } OSCpuPossible : array[TOS,TCpu] of boolean = (
{ os i386 m68k ppc sparc x86_64 arm ppc64 avr armeb armel mips mipsel mips64 misp64el jvm i8086 aarch64}
- { linux } ( true, true, true, true, true, true, true, false, true, false, true, true, false, false, false, false, false),
+ { linux } ( true, true, true, true, true, true, true, false, true, false, true, true, false, false, false, false, true ), { go32v2 } ( true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false), { win32 } ( true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false), { os2 } ( true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),

Reply by email