|
@@ -1455,6 +1455,78 @@ unit i_linux;
|
|
|
llvmdatalayout : 'e-p:32:32:32-i1:8:8-i8:8:32-i16:16:32-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-n32-S64';
|
|
|
);
|
|
|
|
|
|
+ system_loongarch64_linux_info : tsysteminfo =
|
|
|
+ (
|
|
|
+ system : system_loongarch64_linux;
|
|
|
+ name : 'Linux for LoongArch64';
|
|
|
+ shortname : 'Linux';
|
|
|
+ flags : [tf_needs_symbol_size,tf_library_needs_pic,tf_smartlink_sections,tf_needs_dwarf_cfi,
|
|
|
+ tf_needs_symbol_type,tf_files_case_sensitive,
|
|
|
+ tf_requires_proper_alignment,tf_has_winlike_resources,
|
|
|
+ tf_supports_hidden_symbols,
|
|
|
+ tf_safecall_exceptions
|
|
|
+ ];
|
|
|
+ cpu : cpu_loongarch64;
|
|
|
+ unit_env : 'LINUXUNITS';
|
|
|
+ extradefines : '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';
|
|
|
+// p_ext_support : false;
|
|
|
+ Cprefix : '';
|
|
|
+ newline : #10;
|
|
|
+ dirsep : '/';
|
|
|
+ assem : as_gas;
|
|
|
+ assemextern : as_gas;
|
|
|
+ link : ld_none;
|
|
|
+ linkextern : ld_linux;
|
|
|
+ ar : ar_gnu_ar;
|
|
|
+ res : res_elf;
|
|
|
+ dbg : dbg_dwarf3;
|
|
|
+ script : script_unix;
|
|
|
+ endian : endian_little;
|
|
|
+ alignment :
|
|
|
+ (
|
|
|
+ procalign : 8;
|
|
|
+ loopalign : 4;
|
|
|
+ jumpalign : 0;
|
|
|
+ jumpalignskipmax : 0;
|
|
|
+ coalescealign : 0;
|
|
|
+ coalescealignskipmax: 0;
|
|
|
+ constalignmin : 4;
|
|
|
+ constalignmax : 16;
|
|
|
+ varalignmin : 4;
|
|
|
+ varalignmax : 16;
|
|
|
+ localalignmin : 8;
|
|
|
+ localalignmax : 16;
|
|
|
+ recordalignmin : 0;
|
|
|
+ recordalignmax : 16;
|
|
|
+ maxCrecordalign : 16
|
|
|
+ );
|
|
|
+ first_parm_offset : 16;
|
|
|
+ stacksize : 8*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-f128:64:64-v128:128:128-n32:64';
|
|
|
+ );
|
|
|
+
|
|
|
implementation
|
|
|
|
|
|
initialization
|
|
@@ -1546,5 +1618,10 @@ initialization
|
|
|
set_source_info(system_mips64el_linux_info);
|
|
|
{$endif linux}
|
|
|
{$endif CPUMIPS64EL}
|
|
|
+{$ifdef CPULOONGARCH64}
|
|
|
+ {$ifdef linux}
|
|
|
+ set_source_info(system_loongarch64_linux_info);
|
|
|
+ {$endif linux}
|
|
|
+{$endif CPULOONGARCH64}
|
|
|
end.
|
|
|
|