mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-11-03 09:29:42 +01:00
+ ELF/ppc64le resource support
git-svn-id: trunk@30218 -
This commit is contained in:
parent
6b9b575b74
commit
7bc66a5142
@ -289,6 +289,12 @@ begin
|
||||
if (target_info.endian=endian_big) then
|
||||
arch:=arch+'eb';
|
||||
end;
|
||||
if target_info.cpu=systems.cpu_powerpc64 then
|
||||
begin
|
||||
{ differentiate between ppc64 and ppc64le }
|
||||
if target_info.endian=endian_little then
|
||||
arch:=arch+'le';
|
||||
end;
|
||||
Replace(s,'$ARCH',arch);
|
||||
if target_info.system=system_arm_darwin then
|
||||
subarch:=lower(cputypestr[current_settings.cputype]);
|
||||
|
||||
@ -22,7 +22,7 @@ interface
|
||||
type
|
||||
TElfMachineType = (emtnone, emtsparc, emti386, emtm68k, emtppc, emtppc64,
|
||||
emtarm, emtarmeb, emtia64, emtx86_64, emtalpha,
|
||||
emtmips, emtmipsel);
|
||||
emtmips, emtmipsel, emtppc64le);
|
||||
const
|
||||
ELFMAGIC = chr($7f)+'ELF';
|
||||
|
||||
|
||||
@ -24,7 +24,11 @@
|
||||
fMachineType:=emtppc;;
|
||||
{$ENDIF}
|
||||
{$IFDEF CPUPOWERPC64}
|
||||
fMachineType:=emtppc64;;
|
||||
{$ifdef FPC_BIG_ENDIAN}
|
||||
fMachineType:=emtppc64;
|
||||
{$else FPC_BIG_ENDIAN}
|
||||
fMachineType:=emtppc64le;
|
||||
{$endif FPC_BIG_ENDIAN}
|
||||
{$ENDIF}
|
||||
{$IFDEF CPUARM}
|
||||
{$IFDEF ENDIAN_LITTLE}
|
||||
|
||||
@ -548,7 +548,8 @@ begin
|
||||
emti386 : begin fMachineTypeInt:=EM_386; fBits:=ELFCLASS32; fOrder:=ELFDATA2LSB; end;
|
||||
emtm68k : begin fMachineTypeInt:=EM_68K; fBits:=ELFCLASS32; fOrder:=ELFDATA2MSB; end;
|
||||
emtppc : begin fMachineTypeInt:=EM_PPC; fBits:=ELFCLASS32; fOrder:=ELFDATA2MSB; end;
|
||||
emtppc64 : begin fMachineTypeInt:=EM_PPC64; fBits:=ELFCLASS64; fOrder:=ELFDATA2MSB; end;
|
||||
emtppc64 : begin fMachineTypeInt:=EM_PPC64; fBits:=ELFCLASS64;fOrder:=ELFDATA2MSB; end;
|
||||
emtppc64le: begin fMachineTypeInt:=EM_PPC64; fBits:=ELFCLASS64;fOrder:=ELFDATA2LSB; end;
|
||||
emtarm : begin fMachineTypeInt:=EM_ARM; fBits:=ELFCLASS32; fOrder:=ELFDATA2LSB; end;
|
||||
emtarmeb : begin fMachineTypeInt:=EM_ARM; fBits:=ELFCLASS32; fOrder:=ELFDATA2MSB; end;
|
||||
emtalpha : begin fMachineTypeInt:=EM_ALPHA; fBits:=ELFCLASS64; fOrder:=ELFDATA2LSB; end;
|
||||
|
||||
@ -252,6 +252,7 @@ begin
|
||||
mtia64 : Result.MachineType:=emtia64;
|
||||
mtmips : Result.MachineType:=emtmips;
|
||||
mtmipsel : Result.MachineType:=emtmipsel;
|
||||
mtppc64le : Result.MachineType:=emtppc64le;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
@ -22,7 +22,7 @@ interface
|
||||
|
||||
type
|
||||
TMachineType = (mtnone, mti386,mtx86_64,mtppc,mtppc64,mtarm,mtarmeb,mtm68k,
|
||||
mtsparc,mtalpha,mtia64,mtmips,mtmipsel,mtaarch64,
|
||||
mtsparc,mtalpha,mtia64,mtmips,mtmipsel,mtaarch64,mtppc64le,
|
||||
mtBigEndian,mtLittleEndian);
|
||||
TMachineTypes = set of TMachineType;
|
||||
|
||||
@ -34,7 +34,7 @@ type
|
||||
mtarm,mtarmeb:
|
||||
(subarm: TSubMachineTypeArm);
|
||||
mtnone, mti386,mtx86_64,mtppc,mtppc64,mtm68k,
|
||||
mtsparc,mtalpha,mtia64,mtmips,mtmipsel,mtaarch64,
|
||||
mtsparc,mtalpha,mtia64,mtmips,mtmipsel,mtaarch64,mtppc64le,
|
||||
mtBigEndian,mtLittleEndian:
|
||||
(subgen: TSubMachineTypeGeneric);
|
||||
end;
|
||||
@ -84,6 +84,7 @@ var
|
||||
(name : 'mips'; formats : [ofElf]; alias : 'mipseb'), //mtmips
|
||||
(name : 'mipsel'; formats : [ofElf]), //mtmipsel
|
||||
(name : 'aarch64'; formats : [ofMachO]), //mtaarch64
|
||||
(name : 'powerpc64le'; formats : [ofElf]), //mtppc64le
|
||||
(name : 'bigendian'; formats : [ofExt]), //mtBigEndian
|
||||
(name : 'littleendian'; formats : [ofExt]) //mtLittleEndian
|
||||
);
|
||||
@ -100,7 +101,8 @@ var
|
||||
(name : 'elf'; ext : '.or'; machines : [mti386,mtx86_64,mtppc,
|
||||
mtppc64,mtarm,mtarmeb,
|
||||
mtm68k,mtsparc,mtalpha,
|
||||
mtia64,mtmips,mtmipsel]),
|
||||
mtia64,mtmips,mtmipsel,
|
||||
mtppc64le]),
|
||||
(name : 'coff'; ext : '.o'; machines : [mti386,mtx86_64,mtarm,
|
||||
mtppc,mtppc64]),
|
||||
(name : 'xcoff'; ext : '.o'; machines : [mtppc{,mtppc64}]),
|
||||
@ -122,7 +124,11 @@ var
|
||||
machine : mtppc;
|
||||
submachine : (subgen: smtgen_all);
|
||||
{$elseif defined(CPUPOWERPC64)}
|
||||
{$ifdef FPC_BIG_ENDIAN}
|
||||
machine : mtppc64;
|
||||
{$else FPC_BIG_ENDIAN}
|
||||
machine : mtppc64le;
|
||||
{$endif FPC_BIG_ENDIAN}
|
||||
submachine : (subgen: smtgen_all);
|
||||
{$elseif defined(CPUARM)}
|
||||
{$IFDEF ENDIAN_LITTLE}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user