Building problem about ustream-ssl for openwrt v18.06.1

  1. The commands flow
git clone git://git.openwrt.org/openwrt/openwrt.git
cd openwrt
git checkout v18.06.1
./scripts/feeds update -a
./scripts/feeds install -a
make menuconfig
make V=99
  1. The building error information about ustream-ssl
Scanning dependencies of target ustream-ssl
make[6]: Leaving directory '/home/cys/openwrt/build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/ustream-ssl-wolfssl/ustream-ssl-2018-05-22-5322f9db'
make[6]: Entering directory '/home/cys/openwrt/build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/ustream-ssl-wolfssl/ustream-ssl-2018-05-22-5322f9db'
[ 12%] Building C object CMakeFiles/ustream-ssl.dir/ustream-ssl.c.o
[ 25%] Building C object CMakeFiles/ustream-ssl.dir/ustream-io-cyassl.c.o
[ 37%] Building C object CMakeFiles/ustream-ssl.dir/ustream-openssl.c.o
/home/cys/openwrt/build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/ustream-ssl-wolfssl/ustream-ssl-2018-05-22-5322f9db/ustream-openssl.c: In function '__ustream_ssl_context_new':
/home/cys/openwrt/build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/ustream-ssl-wolfssl/ustream-ssl-2018-05-22-5322f9db/ustream-openssl.c:53:2: error: implicit declaration of function 'SSL_CTX_set_ecdh_auto'; did you mean 'SSL_CTX_set_ex_data'? [-Werror=implicit-function-declaration]
  SSL_CTX_set_ecdh_auto(c, 1);
  ^~~~~~~~~~~~~~~~~~~~~
  SSL_CTX_set_ex_data
cc1: all warnings being treated as errors
CMakeFiles/ustream-ssl.dir/build.make:88: recipe for target 'CMakeFiles/ustream-ssl.dir/ustream-openssl.c.o' failed
make[6]: *** [CMakeFiles/ustream-ssl.dir/ustream-openssl.c.o] Error 1
make[6]: Leaving directory '/home/cys/openwrt/build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/ustream-ssl-wolfssl/ustream-ssl-2018-05-22-5322f9db'
CMakeFiles/Makefile2:104: recipe for target 'CMakeFiles/ustream-ssl.dir/all' failed
make[5]: *** [CMakeFiles/ustream-ssl.dir/all] Error 2
make[5]: Leaving directory '/home/cys/openwrt/build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/ustream-ssl-wolfssl/ustream-ssl-2018-05-22-5322f9db'
Makefile:129: recipe for target 'all' failed
make[4]: *** [all] Error 2
make[4]: Leaving directory '/home/cys/openwrt/build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/ustream-ssl-wolfssl/ustream-ssl-2018-05-22-5322f9db'
Makefile:70: recipe for target '/home/cys/openwrt/build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/ustream-ssl-wolfssl/ustream-ssl-2018-05-22-5322f9db/.built' failed
make[3]: *** [/home/cys/openwrt/build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/ustream-ssl-wolfssl/ustream-ssl-2018-05-22-5322f9db/.built] Error 2
make[3]: Leaving directory '/home/cys/openwrt/package/libs/ustream-ssl'
Command exited with non-zero status 2
time: package/libs/ustream-ssl/wolfssl/compile#1.38#0.36#1.65
package/Makefile:107: recipe for target 'package/libs/ustream-ssl/compile' failed
make[2]: *** [package/libs/ustream-ssl/compile] Error 2
make[2]: Leaving directory '/home/cys/openwrt'
package/Makefile:103: recipe for target '/home/cys/openwrt/staging_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/stamp/.package_compile' failed
make[1]: *** [/home/cys/openwrt/staging_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/stamp/.package_compile] Error 2
make[1]: Leaving directory '/home/cys/openwrt'
/home/cys/openwrt/include/toplevel.mk:216: recipe for target 'world' failed
make: *** [world] Error 2

Could you tell me the reason and how to fix it?
If I check out the openwrt-18.06 branch instead of v18.06.1, will it be resolved?

Thanks.

The wolfssl backend is broken since some time. To skip such known broken code, build with make ... IGNORE_ERRORS=m

Thanks.

What you mean is the problem is cased by wolfssl provider, right?
How could I fix this problem if I insist to use wolfssl? Is the component necessary for the openwrt?

libustream-ssl is an SSL library abstraction layer used by some of the OpenWrt specific utilities. The ustream-ssl library can use OpenSSL, mbedTLS or wolfSSL as backend. Currently in 18.06 the support for the wolfssl backend is broken while the OpenSSL and mbedTLS ones work fine.

The default configuration (at least when using luci-ssl) is typically mbedtls, thats why you can safely skip the broken wolfssl build without any negative consequences.

OK, I'm clear now. Thank you so much!