@@ -13,6 +13,13 @@ config OPENSSL_OPTIMIZE_SPEED
increased by 20%-50% (mipsel & x86).
AES-GCM is supposed to be 3x faster on x86. YMMV.
+config OPENSSL_OVERRIDE_TARGET
+ default y
+ bool "Override target optimization level (force -O3)"
+ depends on OPENSSL_OPTIMIZE_SPEED
+ help
+ Force compiling at -O3 instead of the current target optimization level.
+
config OPENSSL_WITH_ASM
bool
default y if !SMALL_FLASH || !arm
@@ -38,6 +38,7 @@ PKG_CONFIG_DEPENDS:= \
CONFIG_OPENSSL_ENGINE_BUILTIN_PADLOCK \
CONFIG_OPENSSL_NO_DEPRECATED \
CONFIG_OPENSSL_OPTIMIZE_SPEED \
+ CONFIG_OPENSSL_OVERRIDE_TARGET \
CONFIG_OPENSSL_PREFER_CHACHA_OVER_GCM \
CONFIG_OPENSSL_WITH_ARIA \
CONFIG_OPENSSL_WITH_ASM \
@@ -254,8 +255,10 @@ ifdef CONFIG_OPENSSL_NO_DEPRECATED
OPENSSL_OPTIONS += no-deprecated
endif
-ifeq ($(CONFIG_OPENSSL_OPTIMIZE_SPEED),y)
- TARGET_CFLAGS := $(filter-out -O%,$(TARGET_CFLAGS)) -O3
+ifdef CONFIG_OPENSSL_OPTIMIZE_SPEED
+ ifdef CONFIG_OPENSSL_OVERRIDE_TARGET
+ TARGET_CFLAGS := $(filter-out -O%,$(TARGET_CFLAGS)) -O3
+ endif
else
OPENSSL_OPTIONS += -DOPENSSL_SMALL_FOOTPRINT
endif
Besides disabling slower/smaller code paths in OpenSSL itself, selecting CONFIG_OPENSSL_OPTIMIZE_SPEED=y implied completely ignoring the target optimisation level and always compiling at -O3. Create a new config option to allow disabing this behaviour. No changes to the current defaults. Library sizes (in bytes): O3, 74kc, OPENSSL_OPTIMIZE_SPEED, OPENSSL_WITH_ASM 2010840 libcrypto.so.1.1 443848 libssl.so.1.1 O2, 74kc, OPENSSL_OPTIMIZE_SPEED, OPENSSL_WITH_ASM 1865180 libcrypto.so.1.1 428320 libssl.so.1.1 Os, 74kc, OPENSSL_OPTIMIZE_SPEED, OPENSSL_WITH_ASM 1716068 libcrypto.so.1.1 398788 libssl.so.1.1 Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com> --- package/libs/openssl/Config.in | 7 +++++++ package/libs/openssl/Makefile | 7 +++++-- 2 files changed, 12 insertions(+), 2 deletions(-)