buildroot/package/libsoup/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

39 lines
975 B
Plaintext

config BR2_PACKAGE_LIBSOUP
bool "libsoup"
depends on BR2_USE_WCHAR # glib2 and gnutls
depends on BR2_TOOLCHAIN_HAS_THREADS # glib2
depends on BR2_USE_MMU # glib2
select BR2_PACKAGE_LIBXML2
select BR2_PACKAGE_LIBGLIB2
select BR2_PACKAGE_SQLITE
help
libsoup is an HTTP client/server library. It uses GObject
and the GLib main loop, to integrate well with GNOME
applications.
http://live.gnome.org/LibSoup
if BR2_PACKAGE_LIBSOUP
config BR2_PACKAGE_LIBSOUP_GNOME
bool "libsoup-gnome"
help
Build libsoup-gnome library.
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"
depends on BR2_USE_MMU
depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS