New submission from Alexandru Ardelean <ardeleana...@gmail.com>:

This was caught via OpenWrt's build, when upgrading to 3.8.
By default, Blake2 is not enabled in OpenWrt's OpenSSL.
Not sure if this is an issue in OpenSSL or Python or both.

After digging through the _hashopenssl.c, it seems that the check for Blake2 
being enabled/present in OpenSSL is not consistent with how OpenSSL does it.

The build error is:

86_64-openwrt-linux-musl-gcc -shared 
-L/home/sandu/work/openwrt/openwrt/staging_dir/target-x86_64_musl/usr/lib 
-L/home/sandu/work/openwrt/openwrt/staging_dir/target-x86_64_musl/lib 
-L/home/sandu/work/openwrt/openwrt/staging_dir/toolchain-x86_64_gcc-8.3.0_musl/usr/lib
 
-L/home/sandu/work/openwrt/openwrt/staging_dir/toolchain-x86_64_gcc-8.3.0_musl/lib
 -znow -zrelro 
-L/home/sandu/work/openwrt/openwrt/build_dir/target-x86_64_musl/Python-3.8.0 
-L/home/sandu/work/openwrt/openwrt/staging_dir/target-x86_64_musl/usr/lib 
-L/home/sandu/work/openwrt/openwrt/staging_dir/target-x86_64_musl/lib 
-L/home/sandu/work/openwrt/openwrt/staging_dir/toolchain-x86_64_gcc-8.3.0_musl/usr/lib
 
-L/home/sandu/work/openwrt/openwrt/staging_dir/toolchain-x86_64_gcc-8.3.0_musl/lib
 -znow -zrelro 
-L/home/sandu/work/openwrt/openwrt/build_dir/target-x86_64_musl/Python-3.8.0 
-L/home/sandu/work/openwrt/openwrt/staging_dir/target-x86_64_musl/usr/lib 
-L/home/sandu/work/openwrt/openwrt/staging_dir/target-x86_64_musl/lib -L/home
 
/sandu/work/openwrt/openwrt/staging_dir/toolchain-x86_64_gcc-8.3.0_musl/usr/lib 
-L/home/sandu/work/openwrt/openwrt/staging_dir/toolchain-x86_64_gcc-8.3.0_musl/lib
 -znow -zrelro 
-L/home/sandu/work/openwrt/openwrt/build_dir/target-x86_64_musl/Python-3.8.0 
-Os -pipe -fno-caller-saves -fno-plt -fhonour-copts 
-Wno-error=unused-but-set-variable -Wno-error=unused-result 
-ffile-prefix-map=/home/sandu/work/openwrt/openwrt/build_dir/target-x86_64_musl/Python-3.8.0=Python-3.8.0
 -Wformat -Werror=format-security -fstack-protector -D_FORTIFY_SOURCE=1 
-Wl,-z,now -Wl,-z,relro -DNDEBUG -fno-inline 
-I/home/sandu/work/openwrt/openwrt/staging_dir/target-x86_64_musl/usr/include 
-I/home/sandu/work/openwrt/openwrt/staging_dir/toolchain-x86_64_gcc-8.3.0_musl/usr/include
 
-I/home/sandu/work/openwrt/openwrt/staging_dir/toolchain-x86_64_gcc-8.3.0_musl/include/fortify
 
-I/home/sandu/work/openwrt/openwrt/staging_dir/toolchain-x86_64_gcc-8.3.0_musl/include
 build/temp.linux2-3.8/home/sandu/work/openwrt/openwrt/buil
 d_dir/target-x86_64_musl/Python-3.8.0/Modules/_curses
_panel.o -L. 
-L/home/sandu/work/openwrt/openwrt/staging_dir/target-x86_64_musl/usr/lib 
-L/home/sandu/work/openwrt/openwrt/staging_dir/target-x86_64_musl/lib 
-L/home/sandu/work/openwrt/openwrt/staging_dir/toolchain-x86_64_gcc-8.3.0_musl/usr/lib
 
-L/home/sandu/work/openwrt/openwrt/staging_dir/toolchain-x86_64_gcc-8.3.0_musl/lib
 -L/home/sandu/work/openwrt/openwrt/build_dir/target-x86_64_musl/Python-3.8.0 
-L/home/sandu/work/openwrt/openwrt/staging_dir/toolchain-x86_64_gcc-8.3.0_musl/x86_64-openwrt-linux-musl/lib
 -lpanelw -lncursesw -o build/lib.linux2-3.8/_curses_panel.cpython-38.so
/home/sandu/work/openwrt/openwrt/build_dir/target-x86_64_musl/Python-3.8.0/Modules/_hashopenssl.c:
 In function 'py_digest_by_name':
/home/sandu/work/openwrt/openwrt/build_dir/target-x86_64_musl/Python-3.8.0/Modules/_hashopenssl.c:220:22:
 error: implicit declaration of function 'EVP_blake2s256'; did you mean 
'SN_blake2s256'? [-Werror=implicit-function-declaration]
             digest = EVP_blake2s256();
                      ^~~~~~~~~~~~~~
                      SN_blake2s256
/home/sandu/work/openwrt/openwrt/build_dir/target-x86_64_musl/Python-3.8.0/Modules/_hashopenssl.c:220:20:
 warning: assignment to 'const EVP_MD *' {aka 'const struct evp_md_st *'} from 
'int' makes pointer from integer without a cast [-Wint-conversion]
             digest = EVP_blake2s256();
                    ^
/home/sandu/work/openwrt/openwrt/build_dir/target-x86_64_musl/Python-3.8.0/Modules/_hashopenssl.c:223:22:
 error: implicit declaration of function 'EVP_blake2b512'; did you mean 
'LN_blake2b512'? [-Werror=implicit-function-declaration]
             digest = EVP_blake2b512();
                      ^~~~~~~~~~~~~~
                      LN_blake2b512
/home/sandu/work/openwrt/openwrt/build_dir/target-x86_64_musl/Python-3.8.0/Modules/_hashopenssl.c:223:20:
 warning: assignment to 'const EVP_MD *' {aka 'const struct evp_md_st *'} from 
'int' makes pointer from integer without a cast [-Wint-conversion]
             digest = EVP_blake2b512();
                    ^

----------
assignee: christian.heimes
components: Build, SSL
messages: 355940
nosy: Alexandru Ardelean, christian.heimes
priority: normal
severity: normal
status: open
title: hashlib: build fails when blake2 is disabled in OpenSSL
versions: Python 3.8

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue38684>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to