From 99f2b968946b4a0f391e62a417c370c7e9b942de Mon Sep 17 00:00:00 2001 From: Adrien Destugues Date: Mon, 28 Dec 2020 21:22:25 +0100 Subject: [PATCH] elf.h: add some missing defines Needed for ghc. --- headers/build/os/kernel/elf.h | 18 ++++++++++++++++++ headers/os/kernel/elf.h | 18 ++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/headers/build/os/kernel/elf.h b/headers/build/os/kernel/elf.h index c8ab1a87a5..e3c3fa0586 100644 --- a/headers/build/os/kernel/elf.h +++ b/headers/build/os/kernel/elf.h @@ -270,6 +270,8 @@ typedef struct { #define SHT_REL 9 #define SHT_SHLIB 10 #define SHT_DYNSYM 11 +#define SHT_INIT_ARRAY 14 +#define SHT_FINI_ARRAY 15 #define SHT_GNU_verdef 0x6ffffffd /* version definition section */ #define SHT_GNU_verneed 0x6ffffffe /* version needs section */ @@ -408,6 +410,22 @@ typedef struct { /* special symbol indices */ #define STN_UNDEF 0 +/* relocation types */ + +#define R_386_NONE 0 +#define R_386_32 1 /* add symbol value */ +#define R_386_PC32 2 /* add PC relative symbol value */ +#define R_386_GOT32 3 /* add PC relative GOT offset */ +#define R_386_PLT32 4 /* add PC relative PLT offset */ +#define R_386_COPY 5 /* copy data from shared object */ +#define R_386_GLOB_DAT 6 /* set GOT entry to data address */ +#define R_386_JMP_SLOT 7 /* set GOT entry to code address */ +#define R_386_RELATIVE 8 /* add load address of shared object */ +#define R_386_GOTOFF 9 /* add GOT relative symbol address */ +#define R_386_GOTPC 10 /* add PC relative GOT table address */ +#define R_386_TLS_DTPMOD32 35 +#define R_386_TLS_DTPOFF32 36 + /* relocation table entry */ diff --git a/headers/os/kernel/elf.h b/headers/os/kernel/elf.h index f48fdcdd44..98dac80f32 100644 --- a/headers/os/kernel/elf.h +++ b/headers/os/kernel/elf.h @@ -281,6 +281,8 @@ typedef struct { #define SHT_REL 9 #define SHT_SHLIB 10 #define SHT_DYNSYM 11 +#define SHT_INIT_ARRAY 14 +#define SHT_FINI_ARRAY 15 #define SHT_GNU_verdef 0x6ffffffd /* version definition section */ #define SHT_GNU_verneed 0x6ffffffe /* version needs section */ @@ -419,6 +421,22 @@ typedef struct { /* special symbol indices */ #define STN_UNDEF 0 +/* relocation types */ + +#define R_386_NONE 0 +#define R_386_32 1 /* add symbol value */ +#define R_386_PC32 2 /* add PC relative symbol value */ +#define R_386_GOT32 3 /* add PC relative GOT offset */ +#define R_386_PLT32 4 /* add PC relative PLT offset */ +#define R_386_COPY 5 /* copy data from shared object */ +#define R_386_GLOB_DAT 6 /* set GOT entry to data address */ +#define R_386_JMP_SLOT 7 /* set GOT entry to code address */ +#define R_386_RELATIVE 8 /* add load address of shared object */ +#define R_386_GOTOFF 9 /* add GOT relative symbol address */ +#define R_386_GOTPC 10 /* add PC relative GOT table address */ +#define R_386_TLS_DTPMOD32 35 +#define R_386_TLS_DTPOFF32 36 + /* relocation table entry */