summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeoff Levand <geoff@infradead.org>2016-12-01 11:09:37 -0800
committerSimon Horman <horms@verge.net.au>2016-12-02 09:20:54 +0100
commit0a7fba8b145306af4909950f64f2797a08db68d4 (patch)
treeb4ae3d162febf24062f51a93c39225de3c3c6336
parentec271d6c298839916009474a9736728c77d959f1 (diff)
purgatory: Change default sha256 optimization to -O2
Change the default purgatory sha256 code optimization from -O0 to -O2, and add a new arch specific makefile variable $(ARCH)_PURGATORY_SHA256_CFLAGS which can over ride this default. Set ia64_PURGATORY_SHA256_CFLAGS to -O0 to retain the previous optimization level for ia64. The purgatory sha256 code needs the be built with -O0 for the ia64 architecture. Currently this code is built with -O0 for all architectures, which slows down the calculations for architectures which could otherwise use -O2. On arm64, it takes around 20 second to verify SHA in purgatory when vmlinuz image is around 13MB and initramfs is around 30M with -O2 enabled. Otherwise, it takes more than 2 minutes. Cc: Pratyush Anand <panand@redhat.com> Signed-off-by: Geoff Levand <geoff@infradead.org> Signed-off-by: Simon Horman <horms@verge.net.au>
-rw-r--r--purgatory/Makefile4
-rw-r--r--purgatory/arch/ia64/Makefile4
2 files changed, 5 insertions, 3 deletions
diff --git a/purgatory/Makefile b/purgatory/Makefile
index ca0443c..328904e 100644
--- a/purgatory/Makefile
+++ b/purgatory/Makefile
@@ -38,9 +38,7 @@ clean += $(PURGATORY_OBJS) $(PURGATORY_DEPS) $(PURGATORY)
-include $(PURGATORY_DEPS)
-# sha256.c needs to be compiled without optimization, else
-# purgatory fails to execute on ia64.
-purgatory/sha256.o: CFLAGS += -O0
+purgatory/sha256.o: CFLAGS += -O2 $($(ARCH)_PURGATORY_SHA256_CFLAGS)
purgatory/sha256.o: $(srcdir)/util_lib/sha256.c
mkdir -p $(@D)
diff --git a/purgatory/arch/ia64/Makefile b/purgatory/arch/ia64/Makefile
index 32c3d97..4a2564c 100644
--- a/purgatory/arch/ia64/Makefile
+++ b/purgatory/arch/ia64/Makefile
@@ -8,6 +8,10 @@ ia64_PURGATORY_SRCS += purgatory/arch/ia64/vga.c
ia64_PURGATORY_EXTRA_CFLAGS = -ffixed-r28
+# sha256.c needs to be compiled without optimization, else
+# purgatory fails to execute on ia64.
+ia64_PURGATORY_SHA256_CFLAGS = -O0
+
dist += purgatory/arch/ia64/Makefile $(ia64_PURGATORY_SRCS) \
purgatory/arch/ia64/io.h purgatory/arch/ia64/purgatory-ia64.h