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] 6b74888679
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>
This commit is contained in:
parent
557f8d649d
commit
30ed9de2fd
@ -1,5 +1,6 @@
|
||||
config BR2_PACKAGE_AICCU
|
||||
bool "aiccu"
|
||||
depends on !BR2_STATIC_LIBS # gnutls
|
||||
depends on BR2_USE_WCHAR
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS
|
||||
depends on BR2_USE_MMU # fork()
|
||||
@ -18,6 +19,7 @@ config BR2_PACKAGE_AICCU
|
||||
|
||||
http://www.sixxs.net/tools/aiccu/
|
||||
|
||||
comment "aiccu needs a toolchain w/ wchar, threads"
|
||||
comment "aiccu needs a toolchain w/ wchar, threads, dynamic library"
|
||||
depends on BR2_USE_MMU
|
||||
depends on !(BR2_USE_WCHAR && BR2_TOOLCHAIN_HAS_THREADS)
|
||||
depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS \
|
||||
|| BR2_STATIC_LIBS
|
||||
|
@ -33,12 +33,16 @@ config BR2_PACKAGE_CONNMAN_WIFI
|
||||
|
||||
config BR2_PACKAGE_CONNMAN_WISPR
|
||||
bool "enable WISPr support"
|
||||
depends on !BR2_STATIC_LIBS # gnutls
|
||||
select BR2_PACKAGE_GNUTLS
|
||||
help
|
||||
Enable support for Wireless Internet Service Provider
|
||||
roaming (WISPr). A RADIUS server is used to authenticate the
|
||||
subscriber's credentials.
|
||||
|
||||
comment "connman WISPr needs a toolchain w/ dynamic library"
|
||||
depends on BR2_STATIC_LIBS
|
||||
|
||||
config BR2_PACKAGE_CONNMAN_BLUETOOTH
|
||||
bool "enable Bluetooth support"
|
||||
help
|
||||
|
@ -1,5 +1,7 @@
|
||||
config BR2_PACKAGE_GNUTLS
|
||||
bool "gnutls"
|
||||
# https://gitlab.com/gnutls/gnutls/issues/203
|
||||
depends on !BR2_STATIC_LIBS
|
||||
depends on BR2_USE_WCHAR
|
||||
select BR2_PACKAGE_LIBTASN1
|
||||
select BR2_PACKAGE_LIBUNISTRING
|
||||
@ -22,5 +24,5 @@ config BR2_PACKAGE_GNUTLS_TOOLS
|
||||
|
||||
endif
|
||||
|
||||
comment "gnutls needs a toolchain w/ wchar"
|
||||
depends on !BR2_USE_WCHAR
|
||||
comment "gnutls needs a toolchain w/ wchar, dynamic library"
|
||||
depends on !BR2_USE_WCHAR || BR2_STATIC_LIBS
|
||||
|
@ -12,14 +12,15 @@ if BR2_PACKAGE_LIBMICROHTTPD
|
||||
config BR2_PACKAGE_LIBMICROHTTPD_SSL
|
||||
bool "https support"
|
||||
depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgcrypt
|
||||
depends on !BR2_STATIC_LIBS # gnutls
|
||||
depends on BR2_USE_WCHAR
|
||||
select BR2_PACKAGE_GNUTLS
|
||||
select BR2_PACKAGE_LIBGCRYPT
|
||||
help
|
||||
Enable HTTPS (SSL) support.
|
||||
|
||||
comment "libmicrohttpd https support needs a toolchain w/ wchar"
|
||||
depends on !BR2_USE_WCHAR
|
||||
comment "libmicrohttpd https support needs a toolchain w/ wchar, dynamic library"
|
||||
depends on !BR2_USE_WCHAR || BR2_STATIC_LIBS
|
||||
|
||||
endif
|
||||
|
||||
|
@ -22,11 +22,15 @@ config BR2_PACKAGE_LIBSOUP_GNOME
|
||||
|
||||
config BR2_PACKAGE_LIBSOUP_SSL
|
||||
bool "https support"
|
||||
depends on !BR2_STATIC_LIBS # gnutls
|
||||
select BR2_PACKAGE_GLIB_NETWORKING
|
||||
select BR2_PACKAGE_GNUTLS
|
||||
help
|
||||
Enable HTTPS (SSL) support.
|
||||
|
||||
comment "libsoup https support needs a toolchain w/ dynamic library"
|
||||
depends on BR2_STATIC_LIBS
|
||||
|
||||
endif
|
||||
|
||||
comment "libsoup needs a toolchain w/ wchar, threads"
|
||||
|
@ -1,6 +1,7 @@
|
||||
config BR2_PACKAGE_NETWORK_MANAGER
|
||||
bool "networkmanager"
|
||||
depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgcrypt
|
||||
depends on !BR2_STATIC_LIBS # gnutls
|
||||
depends on BR2_USE_MMU # dbus
|
||||
depends on BR2_PACKAGE_HAS_UDEV
|
||||
# Tested with 3.2, but may even work with earlier versions
|
||||
@ -57,8 +58,8 @@ comment "pppd support needs a glibc or uClibc toolchain"
|
||||
|
||||
endif
|
||||
|
||||
comment "NetworkManager needs udev /dev management and a glibc toolchain w/ headers >= 3.7"
|
||||
comment "NetworkManager needs udev /dev management and a glibc toolchain w/ headers >= 3.7, dynamic library"
|
||||
depends on BR2_USE_MMU
|
||||
depends on !BR2_PACKAGE_HAS_UDEV || \
|
||||
!BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_7 || \
|
||||
!BR2_TOOLCHAIN_USES_GLIBC
|
||||
!BR2_TOOLCHAIN_USES_GLIBC || BR2_STATIC_LIBS
|
||||
|
@ -10,7 +10,7 @@ config BR2_PACKAGE_SAMBA4
|
||||
depends on BR2_USE_WCHAR # python
|
||||
depends on BR2_TOOLCHAIN_HAS_NATIVE_RPC
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # python -> libffi
|
||||
depends on !BR2_STATIC_LIBS # python
|
||||
depends on !BR2_STATIC_LIBS # python, gnutls
|
||||
depends on !BR2_nios2 # binary too large, relocations don't fit
|
||||
depends on BR2_TOOLCHAIN_HAS_SYNC_4
|
||||
select BR2_PACKAGE_E2FSPROGS
|
||||
|
@ -1,5 +1,6 @@
|
||||
config BR2_PACKAGE_TASKD
|
||||
bool "taskd"
|
||||
depends on !BR2_STATIC_LIBS # gnutls
|
||||
depends on BR2_USE_WCHAR # gnutls
|
||||
depends on BR2_USE_MMU # fork()
|
||||
depends on BR2_INSTALL_LIBSTDCPP
|
||||
@ -11,6 +12,7 @@ config BR2_PACKAGE_TASKD
|
||||
|
||||
http://taskwarrior.org/
|
||||
|
||||
comment "taskd needs a toolchain w/ C++, wchar"
|
||||
comment "taskd needs a toolchain w/ C++, wchar, dynamic library"
|
||||
depends on BR2_USE_MMU
|
||||
depends on !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP
|
||||
depends on !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP || \
|
||||
BR2_STATIC_LIBS
|
||||
|
@ -1,6 +1,7 @@
|
||||
config BR2_PACKAGE_VPNC
|
||||
bool "vpnc"
|
||||
depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # libgcrypt
|
||||
depends on !BR2_STATIC_LIBS # gnutls
|
||||
depends on BR2_USE_MMU # fork()
|
||||
depends on BR2_USE_WCHAR # gnutls
|
||||
select BR2_PACKAGE_LIBGCRYPT
|
||||
@ -15,6 +16,6 @@ config BR2_PACKAGE_VPNC
|
||||
|
||||
http://www.unix-ag.uni-kl.de/~massar/vpnc
|
||||
|
||||
comment "vpnc needs a toolchain w/ wchar"
|
||||
comment "vpnc needs a toolchain w/ wchar, dynamic library"
|
||||
depends on BR2_USE_MMU
|
||||
depends on !BR2_USE_WCHAR
|
||||
depends on !BR2_USE_WCHAR || BR2_STATIC_LIBS
|
||||
|
@ -49,11 +49,15 @@ if BR2_PACKAGE_WEBKITGTK
|
||||
|
||||
config BR2_PACKAGE_WEBKITGTK_HTTPS
|
||||
bool "HTTPS support"
|
||||
depends on !BR2_STATIC_LIBS # gnutls -> libsoup
|
||||
select BR2_PACKAGE_CA_CERTIFICATES # runtime
|
||||
select BR2_PACKAGE_LIBSOUP_SSL
|
||||
help
|
||||
Enable HTTPS protocol support.
|
||||
|
||||
comment "webkitgtk https support needs a toolchain w/ dynamic library"
|
||||
depends on BR2_STATIC_LIBS
|
||||
|
||||
config BR2_PACKAGE_WEBKITGTK_MULTIMEDIA
|
||||
bool "multimedia support"
|
||||
select BR2_PACKAGE_GSTREAMER1
|
||||
|
Loading…
Reference in New Issue
Block a user