diff options
author | Jens Wiklander <jens.wiklander@linaro.org> | 2020-02-26 09:51:19 +0100 |
---|---|---|
committer | Jérôme Forissier <jerome@forissier.org> | 2020-02-27 12:45:20 +0100 |
commit | 66f7994137d50889d34558080cac2f436a28ee84 (patch) | |
tree | bff95bbcb7d5d6fee0d37a9951a1f5b566bcfe1f | |
parent | b4814b22dcf813691f1a6697e2013b0cbeb8dca3 (diff) |
core: exclude get_aslr_seed() from unpaged part
Excludes get_aslr_seed() from unpaged part and makes sure it's still in
the init part.
Reviewed-by: Jerome Forissier <jerome@forissier.org>
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
-rw-r--r-- | core/arch/arm/kernel/link.mk | 12 | ||||
-rw-r--r-- | core/arch/arm/kernel/link_dummies_init.c | 12 | ||||
-rw-r--r-- | core/arch/arm/kernel/link_dummies_paged.c (renamed from core/arch/arm/kernel/link_dummies.c) | 0 | ||||
-rw-r--r-- | core/arch/arm/kernel/sub.mk | 3 |
4 files changed, 23 insertions, 4 deletions
diff --git a/core/arch/arm/kernel/link.mk b/core/arch/arm/kernel/link.mk index d0b08b95..72c21dfc 100644 --- a/core/arch/arm/kernel/link.mk +++ b/core/arch/arm/kernel/link.mk @@ -20,8 +20,13 @@ link-ldflags += --gc-sections link-ldadd = $(LDADD) link-ldadd += $(libdeps) -link-objs := $(filter-out $(out-dir)/core/arch/arm/kernel/link_dummies.o, \ - $(objs)) +link-objs := $(filter-out \ + $(out-dir)/core/arch/arm/kernel/link_dummies_paged.o \ + $(out-dir)/core/arch/arm/kernel/link_dummies_init.o, \ + $(objs)) +link-objs-init := $(filter-out \ + $(out-dir)/core/arch/arm/kernel/link_dummies_init.o, \ + $(objs)) ldargs-tee.elf := $(link-ldflags) $(link-objs) $(link-out-dir)/version.o \ $(link-ldadd) $(libgcccore) @@ -73,7 +78,8 @@ $(link-out-dir)/init_entries.txt: $(link-out-dir)/all_objs.o $(AWK) '/ ____keep_init/ { printf "-u%s ", $$3 }' > $@ init-ldargs := -T $(link-script-dummy) --no-check-sections --gc-sections -init-ldadd := $(objs) $(link-out-dir)/version.o $(link-ldadd) $(libgcccore) +init-ldadd := $(link-objs-init) $(link-out-dir)/version.o $(link-ldadd) \ + $(libgcccore) cleanfiles += $(link-out-dir)/init.o $(link-out-dir)/init.o: $(link-out-dir)/init_entries.txt $(call gen-version-o) diff --git a/core/arch/arm/kernel/link_dummies_init.c b/core/arch/arm/kernel/link_dummies_init.c new file mode 100644 index 00000000..3d080279 --- /dev/null +++ b/core/arch/arm/kernel/link_dummies_init.c @@ -0,0 +1,12 @@ +// SPDX-License-Identifier: BSD-2-Clause +/* + * Copyright (c) 2020, Linaro Limited + */ +#include <compiler.h> +#include <kernel/generic_boot.h> + +unsigned long __section(".text.dummy.get_aslr_seed") +get_aslr_seed(void *fdt __unused) +{ + return 0; +} diff --git a/core/arch/arm/kernel/link_dummies.c b/core/arch/arm/kernel/link_dummies_paged.c index b893acf3..b893acf3 100644 --- a/core/arch/arm/kernel/link_dummies.c +++ b/core/arch/arm/kernel/link_dummies_paged.c diff --git a/core/arch/arm/kernel/sub.mk b/core/arch/arm/kernel/sub.mk index 6e2ad640..1599127f 100644 --- a/core/arch/arm/kernel/sub.mk +++ b/core/arch/arm/kernel/sub.mk @@ -56,7 +56,8 @@ endif srcs-$(CFG_VIRTUALIZATION) += virtualization.c -srcs-y += link_dummies.c +srcs-y += link_dummies_paged.c +srcs-y += link_dummies_init.c asm-defines-y += asm-defines.c |