Răsfoiți Sursa

m68k: made the vasm writer use the right section attributes, but disabled named sections until some vlink issues are sorted out

git-svn-id: trunk@35116 -
Károly Balogh 8 ani în urmă
părinte
comite
026f0e99f3
1 a modificat fișierele cu 22 adăugiri și 1 ștergeri
  1. 22 1
      compiler/m68k/ag68kvasm.pas

+ 22 - 1
compiler/m68k/ag68kvasm.pas

@@ -35,6 +35,9 @@ unit ag68kvasm;
 
 
   type
   type
     tm68kvasm = class(Tm68kGNUassembler)
     tm68kvasm = class(Tm68kGNUassembler)
+    protected
+      function sectionattrs(atype:TAsmSectiontype):string; override;
+    public
       constructor CreateWithWriter(info: pasminfo; wr: TExternalAssemblerOutputFile; freewriter, smart: boolean); override;
       constructor CreateWithWriter(info: pasminfo; wr: TExternalAssemblerOutputFile; freewriter, smart: boolean); override;
       function MakeCmdLine: TCmdStr; override;
       function MakeCmdLine: TCmdStr; override;
     end;
     end;
@@ -60,6 +63,24 @@ unit ag68kvasm;
         InstrWriter := Tm68kInstrWriter.create(self);
         InstrWriter := Tm68kInstrWriter.create(self);
       end;
       end;
 
 
+    function tm68kvasm.sectionattrs(atype:TAsmSectiontype):string;
+      begin
+        case atype of
+          sec_code, sec_fpc, sec_init, sec_fini:
+            result:='acrx';
+          sec_data:
+            result:='adrw';
+          sec_rodata, sec_rodata_norel:
+            result:='adr';
+          sec_bss, sec_threadvar:
+            result:='aurw';
+          sec_stab, sec_stabstr:
+            result:='dr';
+          else
+            result:='';
+        end;
+      end;
+
     function tm68kvasm.MakeCmdLine: TCmdStr;
     function tm68kvasm.MakeCmdLine: TCmdStr;
       var
       var
         objtype: string;
         objtype: string;
@@ -106,7 +127,7 @@ unit ag68kvasm;
          asmbin : 'vasmm68k_std';
          asmbin : 'vasmm68k_std';
          asmcmd:  '-quiet -elfregs -gas $OTYPE $ARCH -o $OBJ $EXTRAOPT $ASM';
          asmcmd:  '-quiet -elfregs -gas $OTYPE $ARCH -o $OBJ $EXTRAOPT $ASM';
          supported_targets : [system_m68k_amiga,system_m68k_atari,system_m68k_linux];
          supported_targets : [system_m68k_amiga,system_m68k_atari,system_m68k_linux];
-         flags : [af_needar,af_smartlink_sections];
+         flags : [af_needar{,af_smartlink_sections}];
          labelprefix : '.L';
          labelprefix : '.L';
          comment : '# ';
          comment : '# ';
          dollarsign: '$';
          dollarsign: '$';