浏览代码

+ Register x86_64 Solaris

git-svn-id: trunk@14223 -
pierre 15 年之前
父节点
当前提交
db8f8e2637
共有 2 个文件被更改,包括 86 次插入3 次删除
  1. 79 3
      compiler/systems/i_sunos.pas
  2. 7 0
      compiler/systems/t_sunos.pas

+ 79 - 3
compiler/systems/i_sunos.pas

@@ -34,7 +34,10 @@ unit i_sunos;
             system       : system_i386_solaris;
             name         : 'Solaris for i386';
             shortname    : 'solaris';
-            flags        : [tf_under_development,tf_files_case_sensitive,tf_use_function_relative_addresses,tf_smartlink_library,tf_has_winlike_resources];
+            flags        : [tf_under_development,tf_needs_symbol_size,
+                            tf_files_case_sensitive,tf_requires_proper_alignment,
+                            tf_use_function_relative_addresses,
+                            tf_smartlink_library,tf_has_winlike_resources];
             cpu          : cpu_i386;
             unit_env     : 'SOLARISUNITS';
             extradefines : 'UNIX;LIBC;SUNOS;HASUNIX';
@@ -90,13 +93,81 @@ unit i_sunos;
             abi          : abi_default;
           );
 
+
+       system_x86_64_solaris_info : tsysteminfo =
+          (
+            system       : system_x86_64_solaris;
+            name         : 'Solaris for x86-64';
+            shortname    : 'solaris';
+            flags        : [tf_needs_symbol_size,tf_under_development,
+                            tf_files_case_sensitive,tf_use_function_relative_addresses,
+                            tf_requires_proper_alignment,tf_smartlink_library,
+                            tf_has_winlike_resources];
+            cpu          : cpu_x86_64;
+            unit_env     : 'SOLARISUNITS';
+            extradefines : 'UNIX;LIBC;SUNOS;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_gas{as_x86_64_elf64};
+            assemextern  : as_gas;
+            link         : nil;
+            linkextern   : nil;
+            ar           : ar_gnu_ar;
+            res          : res_elf;
+            dbg          : dbg_dwarf2;
+            script       : script_unix;
+            endian       : endian_little;
+            alignment    :
+              (
+                procalign       : 8;
+                loopalign       : 4;
+                jumpalign       : 0;
+                constalignmin   : 0;
+                constalignmax   : 8;
+                varalignmin     : 0;
+                varalignmax     : 16;
+                localalignmin   : 4;
+                localalignmax   : 16;
+                recordalignmin  : 0;
+                recordalignmax  : 16;
+                maxCrecordalign : 8
+              );
+            first_parm_offset : 16;
+            stacksize    : 8*1024*1024;
+            abi : abi_default
+          );
+
+
        system_sparc_solaris_info : tsysteminfo =
           (
             system       : system_sparc_solaris;
             name         : 'Solaris for SPARC';
             shortname    : 'solaris';
-            flags        : [tf_needs_symbol_size,tf_under_development,tf_files_case_sensitive,tf_use_function_relative_addresses,
-                            tf_requires_proper_alignment,tf_smartlink_library,tf_has_winlike_resources];
+            flags        : [tf_needs_symbol_size,tf_under_development,
+                            tf_files_case_sensitive,tf_use_function_relative_addresses,
+                            tf_requires_proper_alignment,tf_smartlink_library,
+                            tf_has_winlike_resources];
             cpu          : cpu_SPARC;
             unit_env     : 'SOLARISUNITS';
             extradefines : 'UNIX;LIBC;SUNOS;HASUNIX';
@@ -160,6 +231,11 @@ initialization
     set_source_info(system_i386_solaris_info);
   {$endif solaris}
 {$endif CPU86}
+{$ifdef CPUX86_64}
+  {$ifdef solaris}
+    set_source_info(system_x86_64_solaris_info);
+  {$endif solaris}
+{$endif CPUX86_64}
 {$ifdef CPUSparc}
   {$ifdef solaris}
     set_source_info(system_sparc_solaris_info);

+ 7 - 0
compiler/systems/t_sunos.pas

@@ -466,6 +466,13 @@ initialization
   RegisterTarget(system_i386_solaris_info);
 {$endif i386}
 
+{$ifdef x86_64}
+  RegisterExternalLinker(system_x86_64_solaris_info,TLinkersolaris);
+  RegisterImport(system_x86_64_solaris,TImportLibsolaris);
+  RegisterExport(system_x86_64_solaris,TExportLibsolaris);
+  RegisterTarget(system_x86_64_solaris_info);
+{$endif x86_64}
+
 {$ifdef sparc}
   RegisterExternalLinker(system_sparc_solaris_info,TLinkersolaris);
   RegisterImport(system_sparc_solaris,TImportLibsolaris);