Преглед изворни кода

Add elf resource support for mips/mipsel CPU in fpcres

git-svn-id: trunk@22604 -
pierre пре 12 година
родитељ
комит
8d386eaba7
2 измењених фајлова са 20 додато и 4 уклоњено
  1. 3 1
      utils/fpcres/fpcres.pas
  2. 17 3
      utils/fpcres/target.pas

+ 3 - 1
utils/fpcres/fpcres.pas

@@ -72,7 +72,7 @@ begin
   writeln('  --arch, -a <name>    Set object file architecture. Supported architectures:');
   writeln('                         i386, x86_64, arm (coff)');
   writeln('                         i386, x86_64, powerpc, powerpc64, arm, armeb, m68k,');
-  writeln('                         sparc, alpha, ia64 (elf)');
+  writeln('                         sparc, alpha, ia64, mips, mipsel (elf)');
   writeln('                         i386, x86_64, powerpc, powerpc64, arm (mach-o)');
   writeln('                         bigendian, littleendian (external)');
   writeln('  --subarch, -s <name> Set object file sub-architecture. Supported values:');
@@ -250,6 +250,8 @@ begin
     mtsparc : Result.MachineType:=emtsparc;
     mtalpha : Result.MachineType:=emtalpha;
     mtia64 : Result.MachineType:=emtia64;
+    mtmips : Result.MachineType:=emtmips;
+    mtmipsel : Result.MachineType:=emtmipsel;
   end;
 end;
 

+ 17 - 3
utils/fpcres/target.pas

@@ -22,7 +22,8 @@ interface
 
 type
   TMachineType = (mtnone, mti386,mtx86_64,mtppc,mtppc64,mtarm,mtarmeb,mtm68k,
-                  mtsparc,mtalpha,mtia64,mtBigEndian,mtLittleEndian);
+                  mtsparc,mtalpha,mtia64,mtmips,mtmipsel,
+                  mtBigEndian,mtLittleEndian);
   TMachineTypes = set of TMachineType;
 
   TSubMachineTypeArm = (smtarm_all,smtarm_v4t,smtarm_v6,smtarm_v5tej,smtarm_xscale,smtarm_v7);
@@ -33,7 +34,8 @@ type
       mtarm,mtarmeb:
         (subarm: TSubMachineTypeArm);
       mtnone, mti386,mtx86_64,mtppc,mtppc64,mtm68k,
-      mtsparc,mtalpha,mtia64,mtBigEndian,mtLittleEndian:
+      mtsparc,mtalpha,mtia64,mtmips,mtmipsel,
+      mtBigEndian,mtLittleEndian:
         (subgen: TSubMachineTypeGeneric);
   end;
 
@@ -78,6 +80,8 @@ var
     (name : 'sparc';        formats : [ofElf]),                   //mtsparc
     (name : 'alpha';        formats : [ofElf]),                   //mtalpha
     (name : 'ia64';         formats : [ofElf]),                   //mtia64
+    (name : 'mips';         formats : [ofElf]),                   //mtmips
+    (name : 'mipsel';       formats : [ofElf]),                   //mtmipsel
     (name : 'bigendian';    formats : [ofExt]),                   //mtBigEndian
     (name : 'littleendian'; formats : [ofExt])                    //mtLittleEndian
   );
@@ -94,7 +98,7 @@ var
     (name : 'elf';      ext : '.or';     machines : [mti386,mtx86_64,mtppc,
                                                      mtppc64,mtarm,mtarmeb,
                                                      mtm68k,mtsparc,mtalpha,
-                                                     mtia64]),
+                                                     mtia64,mtmips,mtmipsel]),
     (name : 'coff';     ext : '.o';      machines : [mti386,mtx86_64,mtarm,
                                                      mtppc,mtppc64]),
     (name : 'xcoff';    ext : '.o';      machines : [mtppc{,mtppc64}]),
@@ -146,6 +150,14 @@ var
   {$IFDEF CPUIA64}
     machine : mtia64;
     submachine : (subgen: smtgen_all);
+  {$ELSE}
+  {$IFDEF CPUMIPSEL}
+    machine : mtmipsel;
+    submachine : (subgen: smtgen_all);
+  {$ELSE}
+  {$IFDEF CPUMIPS}
+    machine : mtmips;
+    submachine : (subgen: smtgen_all);
   {$ELSE}
     machine : mti386;  //default i386
     submachine : (subgen: smtgen_all);
@@ -158,6 +170,8 @@ var
   {$ENDIF}
   {$ENDIF}
   {$ENDIF}
+  {$ENDIF}
+  {$ENDIF}
 
   {$IFDEF WINDOWS}
     objformat : ofCoff;