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:
Károly Balogh 2019-01-04 02:16:24 +00:00
parent 1d7486748a
commit 2f7fe0e737
10 changed files with 97 additions and 7 deletions

View File

@ -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];

View File

@ -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

View File

@ -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.

View File

@ -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.

View File

@ -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

View File

@ -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 : '# ';

View File

@ -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 : '';

View File

@ -54,6 +54,9 @@ implementation
{$ifndef NOTARGETAROS}
,t_aros
{$endif}
{$ifndef NOTARGETHAIKU}
,t_haiku
{$endif}
{$ifndef NOTARGETEMBEDDED}
,t_embed
{$endif}

View File

@ -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),

View File

@ -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),