buildroot/package/network-manager/Config.in
Bernd Kuhls 30ed9de2fd 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>
2017-05-29 22:52:34 +02:00

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