[openssl-users] no-async needs -DOPENSSL_NO_ASYNC nonetheless?

Matt Caswell matt at openssl.org
Wed Oct 17 12:56:08 UTC 2018



On 17/10/2018 13:43, Steffen Nurpmeso wrote:
> Matt Caswell wrote in <cf8b85a3-af41-ba9c-92c4-f744666c7c76 at openssl.org>:
>  |
>  |
>  |On 17/10/2018 13:12, Steffen Nurpmeso wrote:
>  |> Hello, and fyi.
>  |> 
>  |> I have built final 1.1.1 yesterday on AlpineLinux musl after
>  |> running a prelease from end of May before.  My makefile rule for
>  |> this box is (excerpt)
>  |> 
>  |>         ./config --prefix=$(MYPREFIX) zlib-dynamic no-hw shared \
>  |>                 no-deprecated no-async no-tests \
>  |>                 -DOPENSSL_NO_ASYNC \
>  |>                 -Wl,-rpath,'$(LIBRPATH)' &&\
>  |>         make &&\
>  |>         $(SUDO) make install_sw && $(SUDO) make install_ssldirs; \
>  |> 
>  |> The -DOPENSSL_NO_ASYNC i had to add yesterday, no-async alone was
>  |> not enough.  (I have forgotten whether this was necessary in May,
>  |> but most likely not.)
>  |
>  |This shouldn't be necessary. What errors do you get if you don't include
>  |that?
> 
>   #?0[steffen at essex code.arena]$ MAKE=make make openssl-blade MYPREFIX=$HOME/$USR/opt/.ossl-1.1.1
>   cd openssl.git &&\
>   if [ -f NULL ]; then git checkout `cat NULL`; fi &&\
>   ./config --prefix=/home/steffen/usr-essex-alpine-linux-x86_64/opt/.ossl-1.1.1 zlib-dynamic no-hw shared \
>           no-deprecated no-async no-tests \
>           -Wl,-rpath,'' &&\
>   make &&\
>    make install_sw &&  make install_ssldirs; \
>   { git clean -fxd; git reset --hard HEAD;\
>   git checkout arena-manager-null; } >/dev/null
>   Operating system: x86_64-whatever-linux2
>   Configuring OpenSSL version 1.1.1 (0x1010100fL) for linux-x86_64-clang
>   Using os-specific seed configuration
>   Creating configdata.pm
>   Creating Makefile
>   
>   **********************************************************************
>   ***                                                                ***
>   ***   If you want to report a building issue, please include the   ***
>   ***   output from this command:                                    ***
>   ***                                                                ***
>   ***     perl configdata.pm --dump                                  ***
>   ***                                                                ***
>   **********************************************************************
>   make[1]: Entering directory '/home/steffen/code.arena/openssl.git'
>   /usr/bin/perl "-I." -Mconfigdata "util/dofile.pl" \
>       "-oMakefile" crypto/include/internal/bn_conf.h.in > crypto/include/internal/bn_conf.h
>   /usr/bin/perl "-I." -Mconfigdata "util/dofile.pl" \
>       "-oMakefile" crypto/include/internal/dso_conf.h.in > crypto/include/internal/dso_conf.h
>   /usr/bin/perl "-I." -Mconfigdata "util/dofile.pl" \
>       "-oMakefile" include/openssl/opensslconf.h.in > include/openssl/opensslconf.h
>   make depend && make _all
>   make[2]: Entering directory '/home/steffen/code.arena/openssl.git'
>   make[2]: Leaving directory '/home/steffen/code.arena/openssl.git'
>   make[2]: Entering directory '/home/steffen/code.arena/openssl.git'
>   clang [...]
>   clang  -I. -Icrypto/include -Iinclude -fPIC -pthread -m64 -Wa,--noexecstack -Qunused-arguments -Wall -O3 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPADLOCK_ASM -DPOLY1305_ASM -DOPENSSLDIR="\"/home/steffen/usr-essex-alpine-linux-x86_64/opt/.ossl-1.1.1/ssl\"" -DENGINESDIR="\"/home/steffen/usr-essex-alpine-linux-x86_64/opt/.ossl-1.1.1/lib/engines-1.1\"" -DZLIB -DZLIB_SHARED -DNDEBUG -DOPENSSL_API_COMPAT=0x10100000L  -MMD -MF crypto/asn1/a_sign.d.tmp -MT crypto/asn1/a_sign.o -c -o crypto/asn1/a_sign.o crypto/asn1/a_sign.c
>   In file included from crypto/asn1/a_sign.c:22:
>   In file included from crypto/include/internal/evp_int.h:11:
>   include/internal/refcount.h:21:12: fatal error: 'stdatomic.h' file not found
>   #  include <stdatomic.h>
>              ^~~~~~~~~~~~~
>   1 error generated.
>   make[2]: *** [Makefile:955: crypto/asn1/a_sign.o] Error 1
>   make[2]: Leaving directory '/home/steffen/code.arena/openssl.git'
>   make[1]: *** [Makefile:171: all] Error 2
>   make[1]: Leaving directory '/home/steffen/code.arena/openssl.git'
>   Previous HEAD position was 1708e3e85b Prepare for 1.1.1 release
>   Switched to branch 'arena-manager-null'

And that problem goes away by specifying "-DOPENSSL_NO_ASYNC" to
config????? That issue seems to have absolutely nothing to do with that
define. None of the .c or .h files indicated in the error above
reference it, nor do they have anything to do with the async functionality.

This problem seems to be environmental. The code in question looks like
this:

# if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L \
     && !defined(__STDC_NO_ATOMICS__)
#  include <stdatomic.h>
#  define HAVE_C11_ATOMICS
# endif

stdatomic.h is part of C11. A C11 compliant compiler should provide it
unless it also define __STDC_NO_ATOMICS__. Your compiler appears to be
claiming to be C11 compliant and has not defined __STC_NO_ATOMICS__ -
and yet the header file cannot be found.

Perhaps some kind of setup issue on your machine?

Matt
`




More information about the openssl-users mailing list