Browse Source

* Copy and pasted some structures from Net- to OpenBSD (3.4+ ELF!)

marco 21 years ago
parent
commit
308ab35e63
3 changed files with 86 additions and 6 deletions
  1. 6 3
      compiler/systems.pas
  2. 72 2
      compiler/systems/i_bsd.pas
  3. 8 1
      compiler/systems/t_bsd.pas

+ 6 - 3
compiler/systems.pas

@@ -107,8 +107,8 @@ interface
              system_i386_wdosx,         { 21 }
              system_sparc_sunos,        { 22 }
              system_sparc_linux,        { 23 }
-             target_i386_openbsd,       { 24 }
-             target_m68k_openbsd,       { 25 }
+             system_i386_openbsd,       { 24 }
+             system_m68k_openbsd,       { 25 }
              system_x86_64_linux,       { 26 }
              system_powerpc_darwin,     { 27 }
              system_i386_EMX,           { 28 }
@@ -649,7 +649,10 @@ finalization
 end.
 {
   $Log$
-  Revision 1.79  2004-01-14 23:39:05  florian
+  Revision 1.80  2004-01-21 20:53:50  marco
+   * Copy and pasted some structures from Net- to OpenBSD (3.4+ ELF!)
+
+  Revision 1.79  2004/01/14 23:39:05  florian
     * another bunch of x86-64 fixes mainly calling convention and
       assembler reader related
 

+ 72 - 2
compiler/systems/i_bsd.pas

@@ -20,7 +20,8 @@
  ****************************************************************************
 }
 { This unit implements support information structures for FreeBSD/NetBSD.
-  OpenBSD must still be added.}
+  OpenBSD is only added for i386 for now, though it exists for most
+  other common CPU's too}
 
 unit i_bsd;
 
@@ -156,6 +157,69 @@ unit i_bsd;
             use_function_relative_addresses : true
           );
 
+       system_i386_openbsd_info : tsysteminfo =
+          (
+            system       : system_i386_OpenBSD;
+            name         : 'OpenBSD for i386';
+            shortname    : 'OpenBSD';
+            flags        : [tf_under_development];
+            cpu          : cpu_i386;
+            unit_env     : 'BSDUNITS';
+            extradefines : 'UNIX;BSD;HASUNIX';
+            sourceext    : '.pp';
+            pasext       : '.pas';
+            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';
+            Cprefix      : '_';
+            newline      : #10;
+            dirsep       : '/';
+            files_case_relevent : true;
+            assem        : as_gas;
+            assemextern  : as_gas;
+            link         : nil;
+            linkextern   : nil;
+            ar           : ar_gnu_ar;
+            res          : res_none;
+            script       : script_unix;
+            endian       : endian_little;
+            alignment    :
+              (
+                procalign       : 4;
+                loopalign       : 4;
+                jumpalign       : 0;
+                constalignmin   : 0;
+                constalignmax   : 1;
+                varalignmin     : 0;
+                varalignmax     : 1;
+                localalignmin   : 0;
+                localalignmax   : 1;
+                recordalignmin  : 0;
+                recordalignmax  : 2;
+                maxCrecordalign : 4
+              );
+            first_parm_offset : 8;
+            heapsize    : 256*1024;
+            stacksize   : 262144;
+            DllScanSupported:false;
+            use_function_relative_addresses : true
+          );
+
        system_m68k_netbsd_info : tsysteminfo =
           (
             system       : system_m68k_NetBSD;
@@ -359,6 +423,9 @@ initialization
   {$ifdef NetBSD}
      set_source_info(system_i386_NetBSD_info);
   {$endif}
+  {$ifdef OpenBSD}
+     set_source_info(system_i386_NetBSD_info);
+  {$endif}
 {$endif cpu86}
 {$ifdef cpu68}
   {$ifdef NetBSD}
@@ -376,7 +443,10 @@ initialization
 end.
 {
   $Log$
-  Revision 1.6  2004-01-06 21:26:18  jonas
+  Revision 1.7  2004-01-21 20:53:51  marco
+   * Copy and pasted some structures from Net- to OpenBSD (3.4+ ELF!)
+
+  Revision 1.6  2004/01/06 21:26:18  jonas
     * fixed alignment constants for Darwin
 
   Revision 1.5  2004/01/04 21:19:57  jonas

+ 8 - 1
compiler/systems/t_bsd.pas

@@ -727,12 +727,16 @@ initialization
 {$ifdef i386}
   RegisterExternalLinker(system_i386_FreeBSD_info,TLinkerBSD);
   RegisterExternalLinker(system_i386_NetBSD_info,TLinkerBSD);
+  RegisterExternalLinker(system_i386_OpenBSD_info,TLinkerBSD);
   RegisterImport(system_i386_freebsd,timportlibbsd);
   RegisterExport(system_i386_freebsd,texportlibbsd);
   RegisterTarget(system_i386_freebsd_info);
   RegisterImport(system_i386_netbsd,timportlibbsd);
   RegisterExport(system_i386_netbsd,texportlibbsd);
   RegisterTarget(system_i386_netbsd_info);
+  RegisterImport(system_i386_openbsd,timportlibbsd);
+  RegisterExport(system_i386_openbsd,texportlibbsd);
+  RegisterTarget(system_i386_openbsd_info);
 {$endif i386}
 {$ifdef m68k}
 //  RegisterExternalLinker(system_m68k_FreeBSD_info,TLinkerBSD);
@@ -755,7 +759,10 @@ initialization
 end.
 {
   $Log$
-  Revision 1.7  2004-01-05 08:13:30  jonas
+  Revision 1.8  2004-01-21 20:53:51  marco
+   * Copy and pasted some structures from Net- to OpenBSD (3.4+ ELF!)
+
+  Revision 1.7  2004/01/05 08:13:30  jonas
     * fixed compilation problems under x86
 
   Revision 1.6  2004/01/04 21:26:31  jonas