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

Matt Caswell matt at openssl.org
Wed Oct 17 13:40:23 UTC 2018



On 17/10/2018 14:09, Steffen Nurpmeso wrote:
> Matt Caswell wrote in <bf5f388d-1964-24c8-753b-0251a7412642 at openssl.org>:
>  |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:
>  |>|> 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=$H\
>  |>   OME/$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; \
>  ..
>  |>   -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.
> 
> Yes, that is what i did!  I looked into the AlpineLinux abuild
> package system, and how they get it done, and after adding this
> define the building succeeded.
> 
>  |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.
> 
> Yes, no such on musl i think.  But i do not know.

This is definitely an environmental issue. I just installed an Alpine
Linux VM. I got the above error consistently when using clang as the
compiler (whether or not I added "-DOPENSSL_NO_ASYNC"). I got a
successful build if I used gcc instead of clang.

With clang I was able to build successfully after this:

$ apk add clang-dev

Matt




More information about the openssl-users mailing list