kumquat-buildroot/package/connman/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

79 lines
2.3 KiB
Plaintext

config BR2_PACKAGE_CONNMAN
bool "connman"
depends on BR2_USE_WCHAR # libglib2
depends on BR2_TOOLCHAIN_HAS_THREADS # dbus, libglib2
depends on BR2_USE_MMU # dbus, libglib2
depends on !BR2_STATIC_LIBS # needs dlopen()
depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on !BR2_TOOLCHAIN_USES_MUSL # missing res_ninit()
select BR2_PACKAGE_DBUS
select BR2_PACKAGE_LIBGLIB2
select BR2_PACKAGE_IPTABLES
help
The Connection Manager (ConnMan) project provides a daemon
for managing internet connections within embedded devices
running the Linux operating system.
For more information, see https://01.org/connman
if BR2_PACKAGE_CONNMAN
config BR2_PACKAGE_CONNMAN_ETHERNET
bool "enable Ethernet support"
default y
config BR2_PACKAGE_CONNMAN_WIFI
bool "enable WiFi support"
select BR2_PACKAGE_WPA_SUPPLICANT # runtime
select BR2_PACKAGE_WPA_SUPPLICANT_DBUS_NEW # runtime
help
Enable WiFi support (scan and static/dhcp interface
setup). ConnMan detects the start of wpa_supplicant
automatically.
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
Enable Bluetooth support. The start of bluetoothd is
automatically detected and only a runtime dependency.
config BR2_PACKAGE_CONNMAN_LOOPBACK
bool "enable loopback support"
config BR2_PACKAGE_CONNMAN_NEARD
bool "enable neard support"
depends on BR2_TOOLCHAIN_HAS_SYNC_4 # neard
select BR2_PACKAGE_NEARD
config BR2_PACKAGE_CONNMAN_OFONO
bool "enable ofono support"
depends on BR2_TOOLCHAIN_HAS_SYNC_4 # ofono
select BR2_PACKAGE_OFONO
config BR2_PACKAGE_CONNMAN_DEBUG
bool "enable compiling with debugging information"
config BR2_PACKAGE_CONNMAN_CLIENT
bool "enable command line client"
select BR2_PACKAGE_READLINE
endif # BR2_PACKAGE_CONNMAN
comment "connman needs a glibc or uClibc toolchain w/ wchar, threads, resolver, dynamic library"
depends on BR2_USE_MMU
depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS \
|| BR2_TOOLCHAIN_USES_MUSL