32-bit x86 fail to compile fast-math feature when compiled with frame pointer, which uses a register used in a couple of inline asm functions.
Previous versions of wolfssl had this by default. Keeping an extra register available may increase performance, so it's being restored for all architectures. Signed-off-by: Eneas U de Queiroz <cotequei...@gmail.com> --- i386 builds currently fail with: ./wolfcrypt/src/asm.c:700:1: error: 'asm' operand has impossible constraints This is because wolfssl uses all of the available register for [at least] a couple of its fast-math inline asm functions. The frame-pointer uses up one of them causing the above failure. gcc documentation indicates that -fomit-frame-pointer is used in -O1, so it should be enabled without the flag, but this compile error indicates otherwise. I'm not experienced enough to know why this is happening. There are other alternatives: - use -fomit-frame-pointer only for i386 - disable asm for i386 - disable fast-math for i386 - patch asm.c to loosen the constraint of one of the arguments from r= to g= in the affected functions The last 3 are there for completeness, I'm not really considering them. Eneas diff --git a/package/libs/wolfssl/Makefile b/package/libs/wolfssl/Makefile index b186a087e7..159cfbc53f 100644 --- a/package/libs/wolfssl/Makefile +++ b/package/libs/wolfssl/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=wolfssl PKG_VERSION:=4.4.0-stable -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://github.com/wolfSSL/wolfssl/archive/v$(PKG_VERSION) @@ -56,7 +56,7 @@ define Package/libwolfssl/config source "$(SOURCE)/Config.in" endef -TARGET_CFLAGS += $(FPIC) -DFP_MAX_BITS=8192 +TARGET_CFLAGS += $(FPIC) -DFP_MAX_BITS=8192 -fomit-frame-pointer # --enable-stunnel needed for OpenSSL API compatibility bits CONFIGURE_ARGS += \ _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel