Browse Source

+ support exported procedures for linuxppc
* refuse to compile systems/t_linux.pas if processor-specific support
for exported procedures is absent
+ generate .type and .size info for all currently defined linux-variants
in aggas.pas

Jonas Maebe 21 years ago
parent
commit
2d40a5008b
2 changed files with 32 additions and 4 deletions
  1. 12 2
      compiler/aggas.pas
  2. 20 2
      compiler/systems/t_linux.pas

+ 12 - 2
compiler/aggas.pas

@@ -636,7 +636,10 @@ var
                   AsmWrite('.globl'#9);
                   AsmWriteLn(tai_symbol(hp).sym.name);
                 end;
-               if target_info.system in [system_i386_linux,system_i386_beos] then
+               if target_info.system in [system_i386_linux,system_i386_beos,
+                                         system_powerpc_linux,system_m68k_linux,
+                                         system_sparc_linux,system_alpha_linux,
+                                         system_x86_64_linux,system_arm_linux] then
                 begin
                    AsmWrite(#9'.type'#9);
                    AsmWrite(tai_symbol(hp).sym.name);
@@ -832,7 +835,14 @@ var
 end.
 {
   $Log$
-  Revision 1.39  2003-12-14 22:42:54  peter
+  Revision 1.40  2004-01-03 13:51:05  jonas
+    + support exported procedures for linuxppc
+    * refuse to compile systems/t_linux.pas if processor-specific  support
+      for exported procedures is absent
+    + generate .type and .size info for all currently defined linux-variants
+      in aggas.pas
+
+  Revision 1.39  2003/12/14 22:42:54  peter
     * fixed range check error
 
   Revision 1.38  2003/12/10 17:13:22  peter

+ 20 - 2
compiler/systems/t_linux.pas

@@ -181,14 +181,25 @@ begin
            codeSegment.concat(Tai_symbol.Createname_global(hp2.name^,0));
            codeSegment.concat(Taicpu.Op_sym(A_JMP,S_NO,objectlibrary.newasmsymbol(tprocsym(hp2.sym).first_procdef.mangledname)));
            codeSegment.concat(Tai_symbol_end.Createname(hp2.name^));
-{$endif i386}
+{$else i386}
 {$ifdef m68k}
            { place jump in codesegment }
            codesegment.concat(tai_align.create(4));
            codesegment.concat(tai_symbol.createname_global(hp2.name^,0));
            codesegment.concat(taicpu.op_sym(A_JMP,S_NO,objectlibrary.newasmsymbol(tprocsym(hp2.sym).first_procdef.mangledname)));
            codesegment.concat(tai_symbol_end.createname(hp2.name^));
+{$else m68k}
+{$ifdef powerpc}
+           { place jump in codesegment }
+           codesegment.concat(tai_align.create(4));
+           codesegment.concat(tai_symbol.createname_global(hp2.name^,0));
+           codesegment.concat(taicpu.op_sym(A_B,objectlibrary.newasmsymbol(tprocsym(hp2.sym).first_procdef.mangledname)));
+           codesegment.concat(tai_symbol_end.createname(hp2.name^));
+{$endif powerpc}
+{$else powerpc}
+{$error Exportliblinux.generatelib not yet implemented for target processor}
 {$endif m68k}
+{$endif i386}
          end;
       end
      else
@@ -567,7 +578,14 @@ end.
 
 {
   $Log$
-  Revision 1.13  2004-01-01 15:34:50  jonas
+  Revision 1.14  2004-01-03 13:51:05  jonas
+    + support exported procedures for linuxppc
+    * refuse to compile systems/t_linux.pas if processor-specific  support
+      for exported procedures is absent
+    + generate .type and .size info for all currently defined linux-variants
+      in aggas.pas
+
+  Revision 1.13  2004/01/01 15:34:50  jonas
     * default linker name for non-i386 and non-m68k
 
   Revision 1.12  2003/10/30 18:35:30  marco