mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-08 10:48:12 +02:00
haiku-x86_64: add target to the compiler and ppudump, enable it in fpmake and fpcmake
git-svn-id: trunk@40753 -
This commit is contained in:
parent
1d7486748a
commit
2f7fe0e737
@ -139,7 +139,7 @@ const
|
||||
+ [system_riscv32_linux,system_riscv64_linux];
|
||||
|
||||
suppported_targets_x_smallr = systems_linux + systems_solaris
|
||||
+ [system_i386_haiku]
|
||||
+ [system_i386_haiku,system_x86_64_haiku]
|
||||
+ [system_i386_beos]
|
||||
+ [system_m68k_amiga];
|
||||
|
||||
|
@ -187,7 +187,8 @@
|
||||
system_riscv64_embedded, { 98 }
|
||||
system_riscv32_embedded, { 99 }
|
||||
system_aarch64_android, { 100 }
|
||||
system_x86_64_android { 101 }
|
||||
system_x86_64_android, { 101 }
|
||||
system_x86_64_haiku { 102 }
|
||||
);
|
||||
|
||||
type
|
||||
|
@ -108,6 +108,76 @@ unit i_haiku;
|
||||
llvmdatalayout : 'e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32-S32';
|
||||
);
|
||||
|
||||
const
|
||||
system_x86_64_haiku_info : tsysteminfo =
|
||||
(
|
||||
system : system_x86_64_Haiku;
|
||||
name : 'Haiku for x86_64';
|
||||
shortname : 'Haiku';
|
||||
flags : [tf_under_development,tf_needs_symbol_size,tf_files_case_sensitive,
|
||||
tf_pic_default,tf_library_needs_pic,tf_smartlink_sections,
|
||||
tf_has_winlike_resources];
|
||||
cpu : cpu_x86_64;
|
||||
unit_env : 'HAIKUUNITS';
|
||||
extradefines : 'BEOS;UNIX;HASUNIX';
|
||||
exeext : '';
|
||||
defext : '.def';
|
||||
scriptext : '.sh';
|
||||
smartext : '.sl';
|
||||
unitext : '.ppu';
|
||||
unitlibext : '.ppl';
|
||||
asmext : '.s';
|
||||
objext : '.o';
|
||||
resext : '.res';
|
||||
resobjext : '.or';
|
||||
sharedlibext : '.so';
|
||||
staticlibext : '.a';
|
||||
staticlibprefix : 'libp';
|
||||
sharedlibprefix : 'lib';
|
||||
sharedClibext : '.so';
|
||||
staticClibext : '.a';
|
||||
staticClibprefix : 'lib';
|
||||
sharedClibprefix : 'lib';
|
||||
importlibprefix : 'libimp';
|
||||
importlibext : '.a';
|
||||
Cprefix : '';
|
||||
newline : #10;
|
||||
dirsep : '/';
|
||||
assem : as_x86_64_elf64;
|
||||
assemextern : as_gas;
|
||||
link : ld_none;
|
||||
linkextern : ld_haiku;
|
||||
ar : ar_gnu_ar;
|
||||
res : res_elf;
|
||||
dbg : dbg_stabs;
|
||||
script : script_unix;
|
||||
endian : endian_little;
|
||||
{ FIXME: stuff below is copied from Linux/x64 now, could be incorrect for Haiku (KB) }
|
||||
alignment :
|
||||
(
|
||||
procalign : 16;
|
||||
loopalign : 8;
|
||||
jumpalign : 16;
|
||||
jumpalignskipmax : 10;
|
||||
coalescealign : 0;
|
||||
coalescealignskipmax: 0;
|
||||
constalignmin : 0;
|
||||
constalignmax : 16;
|
||||
varalignmin : 0;
|
||||
varalignmax : 16;
|
||||
localalignmin : 4;
|
||||
localalignmax : 16;
|
||||
recordalignmin : 0;
|
||||
recordalignmax : 16;
|
||||
maxCrecordalign : 16
|
||||
);
|
||||
first_parm_offset : 16;
|
||||
stacksize : 16 * 1024 * 1024;
|
||||
stackalign : 16;
|
||||
abi : abi_default;
|
||||
llvmdatalayout : 'e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128';
|
||||
);
|
||||
|
||||
implementation
|
||||
|
||||
initialization
|
||||
@ -116,4 +186,9 @@ initialization
|
||||
set_source_info(system_i386_haiku_info);
|
||||
{$endif haiku}
|
||||
{$endif cpui386}
|
||||
{$ifdef cpux86_64}
|
||||
{$ifdef haiku}
|
||||
set_source_info(system_x86_64_haiku_info);
|
||||
{$endif haiku}
|
||||
{$endif cpux86_64}
|
||||
end.
|
||||
|
@ -271,7 +271,11 @@ begin
|
||||
LinkRes.Add('ld -o $1 -e 0 $2 $3 $4 $5 $6 $7 $8 $9\');
|
||||
}
|
||||
LinkRes.Add('-m');
|
||||
{$ifdef i386}
|
||||
LinkRes.Add('elf_i386_haiku');
|
||||
{$else i386}
|
||||
LinkRes.Add('elf_x86_64_haiku');
|
||||
{$endif i386}
|
||||
LinkRes.Add('-shared');
|
||||
LinkRes.Add('-Bsymbolic');
|
||||
|
||||
@ -519,4 +523,9 @@ initialization
|
||||
RegisterExport(system_i386_haiku,texportlibhaiku);
|
||||
RegisterTarget(system_i386_haiku_info);
|
||||
{$endif i386}
|
||||
{$ifdef x86_64}
|
||||
RegisterImport(system_x86_64_haiku,timportlibhaiku);
|
||||
RegisterExport(system_x86_64_haiku,texportlibhaiku);
|
||||
RegisterTarget(system_x86_64_haiku_info);
|
||||
{$endif x86_64}
|
||||
end.
|
||||
|
@ -189,7 +189,8 @@ const
|
||||
{ 98 } 'Embedded-RiscV32',
|
||||
{ 99 } 'Embedded-RiscV64',
|
||||
{ 100 } 'Android-AArch64',
|
||||
{ 101 } 'Android-x86-64'
|
||||
{ 101 } 'Android-x86-64',
|
||||
{ 102 } 'Haiku-x86-64'
|
||||
);
|
||||
|
||||
const
|
||||
|
@ -392,7 +392,7 @@ interface
|
||||
system_x86_64_win64,system_x86_64_embedded,
|
||||
system_x86_64_openbsd,system_x86_64_netbsd,
|
||||
system_x86_64_dragonfly,system_x86_64_aros,
|
||||
system_x86_64_android];
|
||||
system_x86_64_android,system_x86_64_haiku];
|
||||
flags : [af_needar,af_smartlink_sections,af_supports_dwarf];
|
||||
labelprefix : '.L';
|
||||
comment : '# ';
|
||||
|
@ -677,7 +677,8 @@ implementation
|
||||
supported_targets : [system_x86_64_linux,system_x86_64_freebsd,
|
||||
system_x86_64_openbsd,system_x86_64_netbsd,
|
||||
system_x86_64_dragonfly,system_x86_64_solaris,
|
||||
system_x86_64_aros,system_x86_64_android];
|
||||
system_x86_64_aros,system_x86_64_android,
|
||||
system_x86_64_haiku];
|
||||
flags : [af_outputbinary,af_smartlink_sections,af_supports_dwarf];
|
||||
labelprefix : '.L';
|
||||
comment : '';
|
||||
|
@ -54,6 +54,9 @@ implementation
|
||||
{$ifndef NOTARGETAROS}
|
||||
,t_aros
|
||||
{$endif}
|
||||
{$ifndef NOTARGETHAIKU}
|
||||
,t_haiku
|
||||
{$endif}
|
||||
{$ifndef NOTARGETEMBEDDED}
|
||||
,t_embed
|
||||
{$endif}
|
||||
|
@ -215,7 +215,7 @@ Const
|
||||
{ nds } ( false, false, false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false),
|
||||
{ embedded }( false, true, true, true, true, true, true, true, true, true , false, true, false, true , false, false, true , true ),
|
||||
{ symbian } ( false, true, false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false),
|
||||
{ haiku } ( false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
|
||||
{ haiku } ( false, true, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false),
|
||||
{ iphonesim}( false, true, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false),
|
||||
{ aix } ( false, false, false, true, false, false, false, true, false, false, false, false, false, false, false, false, false, false),
|
||||
{ java } ( false, false, false, false, false, false, false, false, false, false, false, false, true , false, false, false, false, false),
|
||||
|
@ -116,7 +116,7 @@ interface
|
||||
{ os2 } ( true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
|
||||
{ freebsd } ( true, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
|
||||
{ beos } ( true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
|
||||
{ haiku } ( true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
|
||||
{ haiku } ( true, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
|
||||
{ netbsd } ( true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
|
||||
{ amiga } ( false, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
|
||||
{ atari } ( false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false),
|
||||
|
Loading…
Reference in New Issue
Block a user