Fixed some ElfLinker endian issues.

This commit is contained in:
Markus F.X.J. Oberhumer
2006-11-18 17:43:29 +01:00
parent 9eca502026
commit d9e8c953b1
10 changed files with 127 additions and 10 deletions
+9
View File
@@ -61,7 +61,10 @@ protected:
unsigned nrelocations_capacity;
bool reloc_done;
public:
const N_BELE_RTP::AbstractPolicy *bele_policy;
protected:
void preprocessSections(char *start, const char *end);
void preprocessSymbols(char *start, const char *end);
void preprocessRelocations(char *start, const char *end);
@@ -155,6 +158,8 @@ protected:
class ElfLinkerArmBE : public ElfLinker
{
typedef ElfLinker super;
public:
ElfLinkerArmBE() { bele_policy = &N_BELE_RTP::be_policy; }
protected:
virtual void relocate1(const Relocation *, upx_byte *location,
unsigned value, const char *type);
@@ -173,6 +178,8 @@ protected:
class ElfLinkerM68k : public ElfLinker
{
typedef ElfLinker super;
public:
ElfLinkerM68k() { bele_policy = &N_BELE_RTP::be_policy; }
protected:
virtual void alignCode(unsigned len);
virtual void relocate1(const Relocation *, upx_byte *location,
@@ -192,6 +199,8 @@ protected:
class ElfLinkerPpc32 : public ElfLinker
{
typedef ElfLinker super;
public:
ElfLinkerPpc32() { bele_policy = &N_BELE_RTP::be_policy; }
protected:
virtual void relocate1(const Relocation *, upx_byte *location,
unsigned value, const char *type);