![Bernd Kuhls](/assets/img/avatar_default.png)
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>
66 lines
2.1 KiB
Plaintext
66 lines
2.1 KiB
Plaintext
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
|
|
depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2
|
|
depends on BR2_TOOLCHAIN_USES_GLIBC # CLOCK_BOOTTIME, IPTOS_CLASS_*
|
|
select BR2_PACKAGE_DHCPCD if !BR2_PACKAGE_DHCP_CLIENT
|
|
select BR2_PACKAGE_DBUS
|
|
select BR2_PACKAGE_DBUS_GLIB
|
|
select BR2_PACKAGE_GNUTLS
|
|
select BR2_PACKAGE_LIBGCRYPT
|
|
select BR2_PACKAGE_LIBNL
|
|
select BR2_PACKAGE_LIBGUDEV
|
|
select BR2_PACKAGE_UTIL_LINUX
|
|
select BR2_PACKAGE_UTIL_LINUX_LIBUUID
|
|
select BR2_PACKAGE_WIRELESS_TOOLS
|
|
select BR2_PACKAGE_WIRELESS_TOOLS_LIB
|
|
select BR2_PACKAGE_READLINE
|
|
select BR2_PACKAGE_LIBNDP
|
|
help
|
|
NetworkManager is a set of co-operative tools that make networking
|
|
simple and straightforward. Whether WiFi, wired, 3G, or Bluetooth,
|
|
NetworkManager allows you to quickly move from one network to
|
|
another: once a network has been configured and joined once, it
|
|
can be detected and re-joined automatically the next time it's
|
|
available.
|
|
|
|
http://projects.gnome.org/NetworkManager/
|
|
|
|
if BR2_PACKAGE_NETWORK_MANAGER
|
|
|
|
config BR2_PACKAGE_NETWORK_MANAGER_TUI
|
|
bool "nmtui support"
|
|
select BR2_PACKAGE_NEWT
|
|
help
|
|
This option enables terminal based UI
|
|
|
|
config BR2_PACKAGE_NETWORK_MANAGER_MODEM_MANAGER
|
|
bool "modem-manager support"
|
|
select BR2_PACKAGE_MODEM_MANAGER
|
|
select BR2_PACKAGE_MODEM_MANAGER_LIBMBIM
|
|
select BR2_PACKAGE_MODEM_MANAGER_LIBQMI
|
|
help
|
|
This option enables support for ModemManager
|
|
|
|
config BR2_PACKAGE_NETWORK_MANAGER_PPPD
|
|
bool "pppd support"
|
|
depends on !BR2_TOOLCHAIN_USES_MUSL # pppd
|
|
select BR2_PACKAGE_PPPD
|
|
help
|
|
This option enables support for PPPD daemon
|
|
|
|
comment "pppd support needs a glibc or uClibc toolchain"
|
|
depends on BR2_TOOLCHAIN_USES_MUSL
|
|
|
|
endif
|
|
|
|
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_STATIC_LIBS
|