diff options
| author | Ada Christine <adachristine18@gmail.com> | 2021-12-17 16:06:06 +0000 |
|---|---|---|
| committer | Ada Christine <adachristine18@gmail.com> | 2021-12-17 16:06:06 +0000 |
| commit | d5f485a4f6801f58cbb2bc9d8e80c955c79ff044 (patch) | |
| tree | e49757ff0b076fe9f0088de92e5691d362e769a0 /shim | |
| parent | ec1233b4fcd61a8d1eccbf030cede36e9848e06c (diff) | |
R_AMD64_RELATIVE relocations implemented for EFI shim
Diffstat (limited to 'shim')
| -rw-r--r-- | shim/Makefile | 6 | ||||
| -rw-r--r-- | shim/entry.c | 6 |
2 files changed, 8 insertions, 4 deletions
diff --git a/shim/Makefile b/shim/Makefile index 51ec96c..42007b8 100644 --- a/shim/Makefile +++ b/shim/Makefile @@ -15,11 +15,11 @@ CFLAGS += -Wno-unused-const-variable -Wno-unused-function -fvisibility=hidden \ LIBDIRS += -L$(dir $(shell $(CC) -print-libgcc-file-name)) LDSCRIPT := shim.ld -LDFLAGS += -z max-page-size=4096 --export-dynamic +LDFLAGS += -z max-page-size=4096 --export-dynamic -pic --no-dynamic-linker LOADLIBES := -lgcc -OBJS := entry.o memcmp.o memcpy.o memmove.o memset.o -$(OBJS): CFLAGS += -fPIC -fPIE +OBJS := entry.o elf.o memcmp.o memcpy.o memmove.o memset.o +$(OBJS): CFLAGS += -fPIC DEPS := $(patsubst %.o,%.d,$(OBJS)) diff --git a/shim/entry.c b/shim/entry.c index 303f582..a4d00c7 100644 --- a/shim/entry.c +++ b/shim/entry.c @@ -49,7 +49,11 @@ EFI_STATUS efi_shim_entry(struct efi_loader_image *image, * 3. exit boot services * 5. ??????????? */ - + + void *image_base = (void *)image->buffer_base; + + elf_reloc(image_base); + EFI_STATUS status; if (!image) |
