config BR2_PACKAGE_LIBOPENSSL_TARGET_ARCH
string
- # Use "gcc" minimalistic target to disable DSO
- # no-asm is needed with generic architectures such as gcc, see
- # https://github.com/openssl/openssl/issues/9839
- default "gcc no-asm" if BR2_STATIC_LIBS
# Doesn't work for thumb-only (Cortex-M?)
default "linux-armv4" if BR2_ARM_CPU_HAS_ARM
default "linux-aarch64" if BR2_aarch64
LIBOPENSSL_CFLAGS += -DOPENSSL_SMALL_FOOTPRINT
endif
-ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y)
-LIBOPENSSL_CFLAGS += -DOPENSSL_THREADS
-endif
-
ifeq ($(BR2_USE_MMU),)
LIBOPENSSL_CFLAGS += -DHAVE_FORK=0 -DOPENSSL_NO_MADVISE
endif
--prefix=/usr \
--openssldir=/etc/ssl \
$(if $(BR2_TOOLCHAIN_HAS_LIBATOMIC),-latomic) \
- $(if $(BR2_TOOLCHAIN_HAS_THREADS),-lpthread threads, no-threads) \
+ $(if $(BR2_TOOLCHAIN_HAS_THREADS),threads,no-threads) \
$(if $(BR2_STATIC_LIBS),no-shared,shared) \
$(if $(BR2_PACKAGE_HAS_CRYPTODEV),enable-devcryptoeng) \
no-rc5 \
no-fuzz-libfuzzer \
no-fuzz-afl \
$(if $(BR2_STATIC_LIBS),zlib,zlib-dynamic) \
+ $(if $(BR2_STATIC_LIBS),no-dso) \
)
$(SED) "s#-march=[-a-z0-9] ##" -e "s#-mcpu=[-a-z0-9] ##g" $(@D)/Makefile
$(SED) "s#-O[0-9sg]#$(LIBOPENSSL_CFLAGS)#" $(@D)/Makefile
$(SED) "s# build_tests##" $(@D)/Makefile
endef
+# libdl is not available in a static build, and this is not implied by no-dso
+ifeq ($(BR2_STATIC_LIBS),y)
+define LIBOPENSSL_FIXUP_STATIC_MAKEFILE
+ $(SED) 's#-ldl##g' $(@D)/Makefile
+endef
+LIBOPENSSL_POST_CONFIGURE_HOOKS += LIBOPENSSL_FIXUP_STATIC_MAKEFILE
+endif
+
define HOST_LIBOPENSSL_BUILD_CMDS
$(HOST_MAKE_ENV) $(MAKE) -C $(@D)
endef
rm -f $(TARGET_DIR)/usr/bin/c_rehash
endef
+# libdl has no business in a static build
+ifeq ($(BR2_STATIC_LIBS),y)
+define LIBOPENSSL_FIXUP_STATIC_PKGCONFIG
+ $(SED) 's#-ldl##' $(STAGING_DIR)/usr/lib/pkgconfig/libcrypto.pc
+ $(SED) 's#-ldl##' $(STAGING_DIR)/usr/lib/pkgconfig/libssl.pc
+ $(SED) 's#-ldl##' $(STAGING_DIR)/usr/lib/pkgconfig/openssl.pc
+endef
+LIBOPENSSL_POST_INSTALL_STAGING_HOOKS += LIBOPENSSL_FIXUP_STATIC_PKGCONFIG
+endif
+
ifeq ($(BR2_PACKAGE_PERL),)
define LIBOPENSSL_REMOVE_PERL_SCRIPTS
$(RM) -f $(TARGET_DIR)/etc/ssl/misc/{CA.pl,tsget}