kumquat-buildroot/package/gnutls/Config.in

34 lines
879 B
Plaintext
Raw Normal View History

config BR2_PACKAGE_GNUTLS
bool "gnutls"
package/gnutls: disable for static build The gnutils code uses __attribute__((constructor)) and __attribute__((destructor)) to call constructor/desctructor when a shared library is loaded. Constructor/desctructor are not used when a static library is used (except when if -Wl,--whole-archive -lgnutls -Wno-whole-archive is used, not tested). Even if gnutls initialization (_gnutls_global_init()) may be called manually, the gnutls maintainer said it's not supported [1]. "Note that static linking applications with gnutls is not something supported. gnutls relies on library constructors and destructors which are not loaded when linking statically." Now the gnutls script warns about static linking [2]. So disable gnutls statically by adding "depends on !BR2_STATIC_LIBS" at Kconfig level and --disable-static in GNUTLS_CONF_OPTS. Fixes: [taskd] http://autobuild.buildroot.net/results/c2d/c2dd5c1c9dc87d2943c15e58ee56e67d7375368c [ffmpeg] http://autobuild.buildroot.net/results/892/8926d319d6d1cd1ee72239ad7d9ca869d2355628 [sngrep] http://autobuild.buildroot.net/results/f7f/f7fb42d3742f6f01000a0d181e0c785640284405 [1] https://gitlab.com/gnutls/gnutls/issues/203 [2] https://gitlab.com/gnutls/gnutls/commit/6b748886799f88ddee9721dba4fc4d52854832ae Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de> [Romain: merge our two patches together add some option comment disable static libgnutls.a add sngrep autobuilder reference] Signed-off-by: Romain Naour <romain.naour@gmail.com> Tested-by: Bernd Kuhls <bernd.kuhls@t-online.de> [Thomas: do not disable libgnutls.a] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-05-25 18:34:43 +02:00
# https://gitlab.com/gnutls/gnutls/issues/203
depends on !BR2_STATIC_LIBS
# gnulib requires a library that implements wctomb().
# This is noticed only when linking with libgnutls.so.
depends on BR2_USE_WCHAR
select BR2_PACKAGE_LIBTASN1
select BR2_PACKAGE_NETTLE
select BR2_PACKAGE_PCRE
help
GnuTLS is a secure communications library implementing the SSL
and TLS protocols and technologies around them.
https://www.gnutls.org/
if BR2_PACKAGE_GNUTLS
config BR2_PACKAGE_GNUTLS_OPENSSL
bool "OpenSSL compatibility library"
help
Install OpenSSL compatibility library.
config BR2_PACKAGE_GNUTLS_TOOLS
bool "install tools"
help
Install GnuTLS command line tools for various cryptographic
tasks.
endif
comment "gnutls needs a toolchain w/ wchar, dynamic library"
depends on !BR2_USE_WCHAR || BR2_STATIC_LIBS