diff --git a/bootloader/elfutil.h b/bootloader/elfutil.h index cf529d6..5d8fd43 100644 --- a/bootloader/elfutil.h +++ b/bootloader/elfutil.h @@ -4,10 +4,19 @@ #include #include -#define Elf_Ehdr Elf64_Ehdr -#define Elf_Phdr Elf64_Phdr -#define Elf_Shdr Elf64_Shdr -#define Elf_Dyn Elf64_Dyn +#if __WORDSIZE == 64 +# define Elf_Ehdr Elf64_Ehdr +# define Elf_Phdr Elf64_Phdr +# define Elf_Shdr Elf64_Shdr +# define Elf_Dyn Elf64_Dyn +#elif __WORDSIZE == 32 +# define Elf_Ehdr Elf32_Ehdr +# define Elf_Phdr Elf32_Phdr +# define Elf_Shdr Elf32_Shdr +# define Elf_Dyn Elf32_Dyn +#else /* __WORDSIZE */ +# error __WORDSIZE is not valid +#endif /* __WORDSIZE */ bool elf_is_valid(const Elf_Ehdr *ehdr);