openssl: OpenSSL 3.2.0-alpha1: build failure on linux
Tried to build the alpha in conda-forge, ran into a build error on linux-64:
[...]
$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/openssl_split-3.2.0.alpha1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wa,--noexecstack -Iapps -I. -Iinclude -Iapps/include -pthread -m64 -Wa,--noexecstack -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/openssl_split-3.2.0.alpha1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wa,--noexecstack -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -MMD -MF apps/openssl-bin-version.d.tmp -MT apps/openssl-bin-version.o -c -o apps/openssl-bin-version.o apps/version.c
$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/openssl_split-3.2.0.alpha1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wa,--noexecstack -Iapps -I. -Iinclude -Iapps/include -pthread -m64 -Wa,--noexecstack -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/openssl_split-3.2.0.alpha1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wa,--noexecstack -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -MMD -MF apps/openssl-bin-x509.d.tmp -MT apps/openssl-bin-x509.o -c -o apps/openssl-bin-x509.o apps/x509.c
rm -f fuzz/cmp-test
${LDCMD:-$BUILD_PREFIX/bin/x86_64-conda-linux-gnu-cc -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem $PREFIX/include -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/openssl_split-3.2.0.alpha1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wa,--noexecstack} -pthread -m64 -Wa,--noexecstack -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem $PREFIX/include -fdebug-prefix-map=$SRC_DIR=/usr/local/src/conda/openssl_split-3.2.0.alpha1 -fdebug-prefix-map=$PREFIX=/usr/local/src/conda-prefix -Wa,--noexecstack -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib \
-o fuzz/cmp-test \
fuzz/cmp-test-bin-cmp.o fuzz/cmp-test-bin-fuzz_rand.o \
fuzz/cmp-test-bin-test-corpus.o \
libcrypto.a -ldl -pthread
/home/conda/feedstock_root/build_artifacts/openssl_split_1694128181501/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/12.3.0/../../../../x86_64-conda-linux-gnu/bin/ld: libcrypto.a(libcrypto-lib-bss_dgram.o): in function `dgram_sendmmsg':
bss_dgram.c:(.text.dgram_sendmmsg+0x1ef): undefined reference to `sendmmsg'
Main config:
+ perl ./Configure --libdir=lib --prefix=$PREFIX enable-legacy no-fips no-module no-zlib shared threads enable-ktls linux-x86_64 -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,--allow-shlib-undefined -Wl,-rpath,$PREFIX/lib -Wl,-rpath-link,$PREFIX/lib -L$PREFIX/lib
Configuring OpenSSL version 3.2.0-alpha1 for target linux-x86_64
Using os-specific seed configuration
Created configdata.pm
Running configdata.pm
Created Makefile.in
Created Makefile
Created include/openssl/configuration.h
**********************************************************************
*** ***
*** OpenSSL has been successfully configured ***
*** ***
*** If you encounter a problem while building, please open an ***
*** issue on GitHub <https://github.com/openssl/openssl/issues> ***
*** and include the output from the following command: ***
*** ***
*** perl configdata.pm --dump ***
*** ***
*** (If you are new to OpenSSL, you might want to consult the ***
*** 'Troubleshooting' section in the INSTALL.md file first) ***
*** ***
**********************************************************************
I’m leaving out how we point CC etc. to our compilers, set up CFLAGS etc., but can provide that if desired.
Interestingly, the build does not fail for linux on other arches (aarch64 / ppc64le), nor on other platforms.
About this issue
- Original URL
- State: closed
- Created 10 months ago
- Comments: 15 (15 by maintainers)
Commits related to this issue
- Fix a build failure where recvmmsg is available but not sendmmsg Some old glibc versions have recvmmsg but not sendmmsg. We require both to use that functionality. Introduce a test to check we have a... — committed to mattcaswell/openssl by mattcaswell 10 months ago
- Fix a build failure where recvmmsg is available but not sendmmsg Some old glibc versions have recvmmsg but not sendmmsg. We require both to use that functionality. Introduce a test to check we have a... — committed to webfutureiorepo/NEW-openssl by mattcaswell 10 months ago
This is not a QUIC configuration issue as
BIO_sendmmsgis a general new BIO feature and should be available even if QUIC is disabled.This is a bug in our code because we have a
sendmsg-based fallback we can use ifsendmmsgis unavailable. If evensendmsgis unavailable we also supportsendto.@h-vetinari See crypto/bio/bss_dgram.c line 56 — we currently detect availability of sendmmsg/recvmmsg based on
MSG_WAITFORONEbeing defined. However you can override this by definingNO_RECVMMSG. So configuring with-DNO_RECVMMSGshould work around this for now.