diff options
author | Chris Metcalf <cmetcalf@tilera.com> | 2012-03-29 13:30:31 -0400 |
---|---|---|
committer | Chris Metcalf <cmetcalf@tilera.com> | 2012-05-25 12:48:22 -0400 |
commit | 1efea40d4172a2a475ccb29b59d6221e9d0c174b (patch) | |
tree | 8152b61bb3fa83eb3403bca5cb05731c1063e999 /arch/tile/include/asm/elf.h | |
parent | 73636b1aacb1a07e6fbe0d25e560e69b024a8e25 (diff) |
arch/tile: support building big-endian kernel
The toolchain supports big-endian mode now, so add support for building
the kernel to run big-endian as well.
Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
Diffstat (limited to 'arch/tile/include/asm/elf.h')
-rw-r--r-- | arch/tile/include/asm/elf.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/tile/include/asm/elf.h b/arch/tile/include/asm/elf.h index 623a6bb741c1..d16d006d660e 100644 --- a/arch/tile/include/asm/elf.h +++ b/arch/tile/include/asm/elf.h | |||
@@ -44,7 +44,11 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG]; | |||
44 | #else | 44 | #else |
45 | #define ELF_CLASS ELFCLASS32 | 45 | #define ELF_CLASS ELFCLASS32 |
46 | #endif | 46 | #endif |
47 | #ifdef __BIG_ENDIAN__ | ||
48 | #define ELF_DATA ELFDATA2MSB | ||
49 | #else | ||
47 | #define ELF_DATA ELFDATA2LSB | 50 | #define ELF_DATA ELFDATA2LSB |
51 | #endif | ||
48 | 52 | ||
49 | /* | 53 | /* |
50 | * There seems to be a bug in how compat_binfmt_elf.c works: it | 54 | * There seems to be a bug in how compat_binfmt_elf.c works: it |
@@ -59,6 +63,7 @@ enum { ELF_ARCH = CHIP_ELF_TYPE() }; | |||
59 | */ | 63 | */ |
60 | #define elf_check_arch(x) \ | 64 | #define elf_check_arch(x) \ |
61 | ((x)->e_ident[EI_CLASS] == ELF_CLASS && \ | 65 | ((x)->e_ident[EI_CLASS] == ELF_CLASS && \ |
66 | (x)->e_ident[EI_DATA] == ELF_DATA && \ | ||
62 | (x)->e_machine == CHIP_ELF_TYPE()) | 67 | (x)->e_machine == CHIP_ELF_TYPE()) |
63 | 68 | ||
64 | /* The module loader only handles a few relocation types. */ | 69 | /* The module loader only handles a few relocation types. */ |