summaryrefslogtreecommitdiffstats
path: root/meta/recipes-support
diff options
context:
space:
mode:
authorAndré Draszik <adraszik@tycoint.com>2017-10-06 13:12:58 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-11-05 22:39:48 +0000
commit8c3ea68812ba057fe95daf1f340d542727509b42 (patch)
treec709a264284f923af89901b29939c32d296bb71b /meta/recipes-support
parent47d26eef5212f7c11ea317c733ee221459ece41a (diff)
downloadpoky-8c3ea68812ba057fe95daf1f340d542727509b42.tar.gz
curl: enable threaded resolver
Multi-threaded applications using libcurl crash on DNS timeouts when built using OE. The reason is as follows: By default, libcurl implements DNS timeouts using a timer (alarm()) and a pair of setjmp()/longjmp(). This approach is unsafe in multi-threaded applications for various reasons, as e.g. explained in the relevant man-pages. To avoid this, libcurl can be compiled with a built-in threaded resolver, or against the c-ares asynchronous resolver library. To keep extra dependencies to a minimum, and to mimic other distributions (debian at least), and because c-ares is not available in OE-core, add a PACKAGECONFIG to be able to enable use of of the built-in threaded resolver and enable it by default. (From OE-Core rev: f4dbb4ce29fcd03e64c83efea39f32df437c21cc) Signed-off-by: André Draszik <adraszik@tycoint.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 41f1e44fce976c4140cda62a41349e91e69d04ef) Signed-off-by: André Draszik <adraszik@tycoint.com> Signed-off-by: Armin Kuster <akuster808@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-support')
-rw-r--r--meta/recipes-support/curl/curl_7.53.1.bb7
1 files changed, 4 insertions, 3 deletions
diff --git a/meta/recipes-support/curl/curl_7.53.1.bb b/meta/recipes-support/curl/curl_7.53.1.bb
index bc78ffb07e..a3d7cb949d 100644
--- a/meta/recipes-support/curl/curl_7.53.1.bb
+++ b/meta/recipes-support/curl/curl_7.53.1.bb
@@ -20,9 +20,9 @@ SRC_URI[sha256sum] = "1c7207c06d75e9136a944a2e0528337ce76f15b9ec9ae4bb30d703b59b
20CVE_PRODUCT = "libcurl" 20CVE_PRODUCT = "libcurl"
21inherit autotools pkgconfig binconfig multilib_header 21inherit autotools pkgconfig binconfig multilib_header
22 22
23PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} gnutls proxy zlib" 23PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} gnutls proxy threaded-resolver zlib"
24PACKAGECONFIG_class-native = "ipv6 proxy ssl zlib" 24PACKAGECONFIG_class-native = "ipv6 proxy ssl threaded-resolver zlib"
25PACKAGECONFIG_class-nativesdk = "ipv6 proxy ssl zlib" 25PACKAGECONFIG_class-nativesdk = "ipv6 proxy ssl threaded-resolver zlib"
26 26
27PACKAGECONFIG[dict] = "--enable-dict,--disable-dict," 27PACKAGECONFIG[dict] = "--enable-dict,--disable-dict,"
28PACKAGECONFIG[gnutls] = "--with-gnutls,--without-gnutls,gnutls" 28PACKAGECONFIG[gnutls] = "--with-gnutls,--without-gnutls,gnutls"
@@ -42,6 +42,7 @@ PACKAGECONFIG[smtp] = "--enable-smtp,--disable-smtp,"
42PACKAGECONFIG[ssl] = "--with-ssl --with-random=/dev/urandom,--without-ssl,openssl" 42PACKAGECONFIG[ssl] = "--with-ssl --with-random=/dev/urandom,--without-ssl,openssl"
43PACKAGECONFIG[telnet] = "--enable-telnet,--disable-telnet," 43PACKAGECONFIG[telnet] = "--enable-telnet,--disable-telnet,"
44PACKAGECONFIG[tftp] = "--enable-tftp,--disable-tftp," 44PACKAGECONFIG[tftp] = "--enable-tftp,--disable-tftp,"
45PACKAGECONFIG[threaded-resolver] = "--enable-threaded-resolver,--disable-threaded-resolver"
45PACKAGECONFIG[zlib] = "--with-zlib=${STAGING_LIBDIR}/../,--without-zlib,zlib" 46PACKAGECONFIG[zlib] = "--with-zlib=${STAGING_LIBDIR}/../,--without-zlib,zlib"
46PACKAGECONFIG[krb5] = "--with-gssapi,--without-gssapi,krb5" 47PACKAGECONFIG[krb5] = "--with-gssapi,--without-gssapi,krb5"
47 48