| Summary: | Compiling qt5base-5.11.1 with libressl results in many 'was not declared in this scope' errors | ||
|---|---|---|---|
| Product: | buildroot | Reporter: | Philipp Richter <richterphilipp.pops> |
| Component: | Other | Assignee: | Peter Seiderer <ps.report> |
| Status: | RESOLVED MOVED | ||
| Severity: | normal | CC: | buildroot, yann.morin.1998 |
| Priority: | P5 | ||
| Version: | unspecified | ||
| Target Milestone: | --- | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Host: | Target: | ||
| Build: | |||
| Attachments: | Config file enabling qt5base and libressl | ||
There exits a freebsd provided patch to support libressl, see [1]/[2], but declined upstream, see [3]. [1] https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=228344 [2] https://bz-attachments.freebsd.org/attachment.cgi?id=196994 [3] https://bugreports.qt.io/browse/QTBUG-68374 Patch ported to buildroot, see [1]... [1] https://patchwork.ozlabs.org/patch/968670 Peter, any news on this topic ? The patch you proposed is marked as Changes Requested, but my questions/comments never had any feedback. Thanks! (In reply to Thomas Petazzoni from comment #3) There seems ongoing work on the freebsd side [1] and updated suggested patches (did not look at it at details) latest versions from 2018-10-24/2018-10-25, no news from the qt side... Would suggest waiting for a settled/accepted freebsd patch before updating the buildroot port... [1] https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=228344 Peter: building Qt5 (latest) with LibreSSL still fails, I can reproduce with the current master and the following defconfig: BR2_arm=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-arm-full-2019.05.1.tar.bz2" BR2_TOOLCHAIN_EXTERNAL_GCC_4_9=y BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_14=y BR2_TOOLCHAIN_EXTERNAL_LOCALE=y # BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG is not set BR2_TOOLCHAIN_EXTERNAL_CXX=y BR2_INIT_NONE=y BR2_SYSTEM_BIN_SH_NONE=y # BR2_PACKAGE_BUSYBOX is not set BR2_PACKAGE_QT5=y BR2_PACKAGE_OPENSSL=y BR2_PACKAGE_LIBRESSL=y BR2_PACKAGE_PCRE=y BR2_PACKAGE_PCRE_16=y BR2_PACKAGE_PCRE_UTF=y # BR2_TARGET_ROOTFS_TAR is not set THank you for your report.
The issue tracker for the Buildroot project has been moved to
the Gitlab.com issue tracker:
https://gitlab.com/buildroot.org/buildroot/-/issues
We are taking this opportunity to close old issues in this old
tracker. If you believe your issue is still relevant, please
open one in the new issue tracker.
Thank you!
|
Created attachment 7776 [details] Config file enabling qt5base and libressl Hello, so qt5base-5.11.1 doesn't seem to like libressl. The compiler complains about missing symbols like: error: ‘OPENSSL_STACK’ was not declared in this scope As of commit 8062700e2d48f2914638755961bea6a56f1d5d8f To reproduce: 1) Enable openssl and change the provider to libressl 2) select qt5base 3) make Attached is a config file to reproduce. Output: In file included from ssl/qsslsocket_openssl_symbols_p.h:220, from ssl/qsslcertificate.cpp:116: ssl/qsslsocket_openssl11_symbols_p.h:87:22: error: ‘OPENSSL_STACK’ was not declared in this scope int q_OPENSSL_sk_num(OPENSSL_STACK *a); ^~~~~~~~~~~~~ ssl/qsslsocket_openssl11_symbols_p.h:87:22: note: suggested alternative: ‘OPENSSL_BLOCK’ int q_OPENSSL_sk_num(OPENSSL_STACK *a); ^~~~~~~~~~~~~ OPENSSL_BLOCK ssl/qsslsocket_openssl11_symbols_p.h:87:37: error: ‘a’ was not declared in this scope int q_OPENSSL_sk_num(OPENSSL_STACK *a); ^ ssl/qsslsocket_openssl11_symbols_p.h:88:28: error: variable or field ‘q_OPENSSL_sk_pop_free’ declared void void q_OPENSSL_sk_pop_free(OPENSSL_STACK *a, void (*b)(void *)); ^~~~~~~~~~~~~ ssl/qsslsocket_openssl11_symbols_p.h:88:28: error: ‘OPENSSL_STACK’ was not declared in this scope ssl/qsslsocket_openssl11_symbols_p.h:88:28: note: suggested alternative: ‘OPENSSL_BLOCK’ void q_OPENSSL_sk_pop_free(OPENSSL_STACK *a, void (*b)(void *)); ^~~~~~~~~~~~~ OPENSSL_BLOCK ssl/qsslsocket_openssl11_symbols_p.h:88:43: error: ‘a’ was not declared in this scope void q_OPENSSL_sk_pop_free(OPENSSL_STACK *a, void (*b)(void *)); ^ ssl/qsslsocket_openssl11_symbols_p.h:88:53: error: ‘b’ was not declared in this scope void q_OPENSSL_sk_pop_free(OPENSSL_STACK *a, void (*b)(void *)); ^ ssl/qsslsocket_openssl11_symbols_p.h:88:56: error: expected primary-expression before ‘void’ void q_OPENSSL_sk_pop_free(OPENSSL_STACK *a, void (*b)(void *)); ^~~~ ssl/qsslsocket_openssl11_symbols_p.h:89:1: error: ‘OPENSSL_STACK’ does not name a type; did you mean ‘OPENSSL_BLOCK’? OPENSSL_STACK *q_OPENSSL_sk_new_null(); ^~~~~~~~~~~~~ OPENSSL_BLOCK ssl/qsslsocket_openssl11_symbols_p.h:90:24: error: variable or field ‘q_OPENSSL_sk_push’ declared void void q_OPENSSL_sk_push(OPENSSL_STACK *st, void *data); ^~~~~~~~~~~~~ ssl/qsslsocket_openssl11_symbols_p.h:90:24: error: ‘OPENSSL_STACK’ was not declared in this scope ssl/qsslsocket_openssl11_symbols_p.h:90:24: note: suggested alternative: ‘OPENSSL_BLOCK’ void q_OPENSSL_sk_push(OPENSSL_STACK *st, void *data); ^~~~~~~~~~~~~ OPENSSL_BLOCK ssl/qsslsocket_openssl11_symbols_p.h:90:39: error: ‘st’ was not declared in this scope void q_OPENSSL_sk_push(OPENSSL_STACK *st, void *data); ^~ ssl/qsslsocket_openssl11_symbols_p.h:90:39: note: suggested alternative: ‘Qt’ void q_OPENSSL_sk_push(OPENSSL_STACK *st, void *data); ^~ Qt ssl/qsslsocket_openssl11_symbols_p.h:90:43: error: expected primary-expression before ‘void’ void q_OPENSSL_sk_push(OPENSSL_STACK *st, void *data); ^~~~ ssl/qsslsocket_openssl11_symbols_p.h:91:24: error: variable or field ‘q_OPENSSL_sk_free’ declared void void q_OPENSSL_sk_free(OPENSSL_STACK *a); ^~~~~~~~~~~~~ ssl/qsslsocket_openssl11_symbols_p.h:91:24: error: ‘OPENSSL_STACK’ was not declared in this scope ssl/qsslsocket_openssl11_symbols_p.h:91:24: note: suggested alternative: ‘OPENSSL_BLOCK’ void q_OPENSSL_sk_free(OPENSSL_STACK *a); ^~~~~~~~~~~~~ OPENSSL_BLOCK ssl/qsslsocket_openssl11_symbols_p.h:91:39: error: ‘a’ was not declared in this scope void q_OPENSSL_sk_free(OPENSSL_STACK *a); ^ ssl/qsslsocket_openssl11_symbols_p.h:92:27: error: ‘OPENSSL_STACK’ was not declared in this scope void * q_OPENSSL_sk_value(OPENSSL_STACK *a, int b); ^~~~~~~~~~~~~ ssl/qsslsocket_openssl11_symbols_p.h:92:27: note: suggested alternative: ‘OPENSSL_BLOCK’ void * q_OPENSSL_sk_value(OPENSSL_STACK *a, int b); ^~~~~~~~~~~~~ OPENSSL_BLOCK ssl/qsslsocket_openssl11_symbols_p.h:92:42: error: ‘a’ was not declared in this scope void * q_OPENSSL_sk_value(OPENSSL_STACK *a, int b); ^ ssl/qsslsocket_openssl11_symbols_p.h:92:45: error: expected primary-expression before ‘int’ void * q_OPENSSL_sk_value(OPENSSL_STACK *a, int b); ^~~ ssl/qsslsocket_openssl11_symbols_p.h:92:50: error: expression list treated as compound expression in initializer [-fpermissive] void * q_OPENSSL_sk_value(OPENSSL_STACK *a, int b); ^ ssl/qsslsocket_openssl11_symbols_p.h:95:45: error: ‘OPENSSL_INIT_SETTINGS’ does not name a type; did you mean ‘OPENSSL_INIT_ATFORK’? int q_OPENSSL_init_ssl(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings); ^~~~~~~~~~~~~~~~~~~~~ OPENSSL_INIT_ATFORK In file included from ssl/qsslsocket_openssl_symbols_p.h:220, from ssl/qsslcertificate.cpp:116: ssl/qsslsocket_openssl11_symbols_p.h:107:50: error: ‘X509_STORE_CTX_verify_cb’ has not been declared void q_X509_STORE_set_verify_cb(X509_STORE *ctx, X509_STORE_CTX_verify_cb verify_cb); ^~~~~~~~~~~~~~~~~~~~~~~~ ssl/qsslsocket_openssl11_symbols_p.h:124:48: error: ‘OPENSSL_INIT_SETTINGS’ does not name a type; did you mean ‘OPENSSL_INIT_ATFORK’? int q_OPENSSL_init_crypto(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings); ^~~~~~~~~~~~~~~~~~~~~ OPENSSL_INIT_ATFORK In file included from ssl/qsslcertificate.cpp:116: ssl/qsslsocket_openssl_symbols_p.h:360:1: error: ‘SSL_CONF_CTX’ does not name a type; did you mean ‘SSL_AEAD_CTX’? SSL_CONF_CTX *q_SSL_CONF_CTX_new(); ^~~~~~~~~~~~ SSL_AEAD_CTX ssl/qsslsocket_openssl_symbols_p.h:361:26: error: variable or field ‘q_SSL_CONF_CTX_free’ declared void void q_SSL_CONF_CTX_free(SSL_CONF_CTX *a); ^~~~~~~~~~~~ ssl/qsslsocket_openssl_symbols_p.h:361:26: error: ‘SSL_CONF_CTX’ was not declared in this scope ssl/qsslsocket_openssl_symbols_p.h:361:26: note: suggested alternative: ‘SSL_AEAD_CTX’ void q_SSL_CONF_CTX_free(SSL_CONF_CTX *a); ^~~~~~~~~~~~ SSL_AEAD_CTX ssl/qsslsocket_openssl_symbols_p.h:361:40: error: ‘a’ was not declared in this scope void q_SSL_CONF_CTX_free(SSL_CONF_CTX *a); ^ ssl/qsslsocket_openssl_symbols_p.h:362:33: error: variable or field ‘q_SSL_CONF_CTX_set_ssl_ctx’ declared void void q_SSL_CONF_CTX_set_ssl_ctx(SSL_CONF_CTX *a, SSL_CTX *b); ^~~~~~~~~~~~ ssl/qsslsocket_openssl_symbols_p.h:362:33: error: ‘SSL_CONF_CTX’ was not declared in this scope ssl/qsslsocket_openssl_symbols_p.h:362:33: note: suggested alternative: ‘SSL_AEAD_CTX’ void q_SSL_CONF_CTX_set_ssl_ctx(SSL_CONF_CTX *a, SSL_CTX *b); ^~~~~~~~~~~~ SSL_AEAD_CTX ssl/qsslsocket_openssl_symbols_p.h:362:47: error: ‘a’ was not declared in this scope void q_SSL_CONF_CTX_set_ssl_ctx(SSL_CONF_CTX *a, SSL_CTX *b); ^ ssl/qsslsocket_openssl_symbols_p.h:362:58: error: expected primary-expression before ‘*’ token void q_SSL_CONF_CTX_set_ssl_ctx(SSL_CONF_CTX *a, SSL_CTX *b); ^ ssl/qsslsocket_openssl_symbols_p.h:362:59: error: ‘b’ was not declared in this scope void q_SSL_CONF_CTX_set_ssl_ctx(SSL_CONF_CTX *a, SSL_CTX *b); ^ ssl/qsslsocket_openssl_symbols_p.h:363:39: error: ‘SSL_CONF_CTX’ was not declared in this scope unsigned int q_SSL_CONF_CTX_set_flags(SSL_CONF_CTX *a, unsigned int b); ^~~~~~~~~~~~ ssl/qsslsocket_openssl_symbols_p.h:363:39: note: suggested alternative: ‘SSL_AEAD_CTX’ unsigned int q_SSL_CONF_CTX_set_flags(SSL_CONF_CTX *a, unsigned int b); ^~~~~~~~~~~~ SSL_AEAD_CTX ssl/qsslsocket_openssl_symbols_p.h:363:53: error: ‘a’ was not declared in this scope unsigned int q_SSL_CONF_CTX_set_flags(SSL_CONF_CTX *a, unsigned int b); ^ ssl/qsslsocket_openssl_symbols_p.h:363:56: error: expected primary-expression before ‘unsigned’ unsigned int q_SSL_CONF_CTX_set_flags(SSL_CONF_CTX *a, unsigned int b); ^~~~~~~~ ssl/qsslsocket_openssl_symbols_p.h:363:70: error: expression list treated as compound expression in initializer [-fpermissive] unsigned int q_SSL_CONF_CTX_set_flags(SSL_CONF_CTX *a, unsigned int b); ^ ssl/qsslsocket_openssl_symbols_p.h:364:27: error: ‘SSL_CONF_CTX’ was not declared in this scope int q_SSL_CONF_CTX_finish(SSL_CONF_CTX *a); ^~~~~~~~~~~~ ssl/qsslsocket_openssl_symbols_p.h:364:27: note: suggested alternative: ‘SSL_AEAD_CTX’ int q_SSL_CONF_CTX_finish(SSL_CONF_CTX *a); ^~~~~~~~~~~~ SSL_AEAD_CTX ssl/qsslsocket_openssl_symbols_p.h:364:41: error: ‘a’ was not declared in this scope int q_SSL_CONF_CTX_finish(SSL_CONF_CTX *a); ^ ssl/qsslsocket_openssl_symbols_p.h:365:20: error: ‘SSL_CONF_CTX’ was not declared in this scope int q_SSL_CONF_cmd(SSL_CONF_CTX *a, const char *b, const char *c); ^~~~~~~~~~~~ ssl/qsslsocket_openssl_symbols_p.h:365:20: note: suggested alternative: ‘SSL_AEAD_CTX’ int q_SSL_CONF_cmd(SSL_CONF_CTX *a, const char *b, const char *c); ^~~~~~~~~~~~ SSL_AEAD_CTX ssl/qsslsocket_openssl_symbols_p.h:365:34: error: ‘a’ was not declared in this scope int q_SSL_CONF_cmd(SSL_CONF_CTX *a, const char *b, const char *c); ^ ssl/qsslsocket_openssl_symbols_p.h:365:37: error: expected primary-expression before ‘const’ int q_SSL_CONF_cmd(SSL_CONF_CTX *a, const char *b, const char *c); ^~~~~ ssl/qsslsocket_openssl_symbols_p.h:365:52: error: expected primary-expression before ‘const’ int q_SSL_CONF_cmd(SSL_CONF_CTX *a, const char *b, const char *c); ^~~~~ ssl/qsslsocket_openssl_symbols_p.h:365:65: error: expression list treated as compound expression in initializer [-fpermissive] int q_SSL_CONF_cmd(SSL_CONF_CTX *a, const char *b, const char *c); ^ make[4]: *** [Makefile:24347: .obj/qsslcertificate.o] Error 1 make[4]: *** Waiting for unfinished jobs....