|
@@ -1243,6 +1243,76 @@ unit i_linux;
|
|
|
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';
|
|
|
);
|
|
|
|
|
|
+ system_xtensa_linux_info : tsysteminfo =
|
|
|
+ (
|
|
|
+ system : system_xtensa_linux;
|
|
|
+ name : 'Linux for Xtensa';
|
|
|
+ shortname : 'Linux';
|
|
|
+ flags : [tf_needs_symbol_size,tf_smartlink_sections,
|
|
|
+ tf_needs_symbol_type,tf_files_case_sensitive,
|
|
|
+ tf_requires_proper_alignment,tf_has_winlike_resources,
|
|
|
+ tf_supports_hidden_symbols];
|
|
|
+ cpu : cpu_xtensa;
|
|
|
+ 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_dwarf2;
|
|
|
+ script : script_unix;
|
|
|
+ endian : endian_little;
|
|
|
+ alignment :
|
|
|
+ (
|
|
|
+ procalign : 4;
|
|
|
+ loopalign : 4;
|
|
|
+ jumpalign : 0;
|
|
|
+ jumpalignskipmax : 0;
|
|
|
+ coalescealign : 0;
|
|
|
+ coalescealignskipmax: 0;
|
|
|
+ constalignmin : 0;
|
|
|
+ constalignmax : 8;
|
|
|
+ varalignmin : 0;
|
|
|
+ varalignmax : 8;
|
|
|
+ localalignmin : 4;
|
|
|
+ localalignmax : 16;
|
|
|
+ recordalignmin : 0;
|
|
|
+ recordalignmax : 8;
|
|
|
+ maxCrecordalign : 8
|
|
|
+ );
|
|
|
+ first_parm_offset : 0;
|
|
|
+ stacksize : 32*1024*1024;
|
|
|
+ stackalign : 16;
|
|
|
+ abi : abi_xtensa_windowed;
|
|
|
+ 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';
|
|
|
+ );
|
|
|
+
|
|
|
implementation
|
|
|
|
|
|
initialization
|
|
@@ -1319,4 +1389,10 @@ initialization
|
|
|
set_source_info(system_riscv64_linux_info);
|
|
|
{$endif linux}
|
|
|
{$endif CPURISCV64}
|
|
|
+{$ifdef CPUXTENSA}
|
|
|
+ {$ifdef linux}
|
|
|
+ set_source_info(system_xtensa_linux_info);
|
|
|
+ {$endif linux}
|
|
|
+{$endif CPUXTENSA}
|
|
|
end.
|
|
|
+
|