package/gnutls: disable for static build
authorBernd Kuhls <bernd.kuhls@t-online.de>
Thu, 25 May 2017 16:34:43 +0000 (18:34 +0200)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Mon, 29 May 2017 20:52:34 +0000 (22:52 +0200)
commit30ed9de2fd8a572ffce26f7a9c8187335c567668
tree543c9a5bc7022f43bc72d7db30e7e2e9dea0b346
parent557f8d649d9a959e810a3c92774020a434d567a8
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] https://gitlab.com/gnutls/gnutls/commit/6b748886799f88ddee9721dba4fc4d52854832ae

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>
package/aiccu/Config.in
package/connman/Config.in
package/gnutls/Config.in
package/libmicrohttpd/Config.in
package/libsoup/Config.in
package/network-manager/Config.in
package/samba4/Config.in
package/taskd/Config.in
package/vpnc/Config.in
package/webkitgtk/Config.in