All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnout Vandecappelle <arnout@mind.be>
To: Baruch Siach <baruch@tkos.co.il>, buildroot@busybox.net
Cc: Matt Weber <matthew.weber@collins.com>
Subject: Re: [Buildroot] [PATCH] package/libcurl: fix build when !BR2_TOOLCHAIN_HAS_SYNC_1
Date: Sat, 23 Jul 2022 13:49:14 +0200	[thread overview]
Message-ID: <5bbf502b-5fe5-45af-319f-dd05251d9a4e@mind.be> (raw)
In-Reply-To: <a91e52dc20742c251ac5fdc6ada81c499dfc1705.1658419808.git.baruch@tkos.co.il>



On 21/07/2022 18:10, Baruch Siach via buildroot wrote:
> On platform that do not provide __atomic_exchange_1(), and when
> libatomic is not available (e.g., threads support disabled) link of
> libcurl.so fails. To solve this use an indirect way to make HAVE_ATOMIC
> undefined. Add an upstream patch for checking the stdatomic.h header,
> and seed the 'no' answer.
> 
> Fixes:
> http://autobuild.buildroot.net/results/8f695d4dbb91cfde8e93ab38e837b0a0042b986b/
> http://autobuild.buildroot.net/results/3b4712b0ace52da1650e88cdaafb6a20be135464/
> 
> Cc: Matt Weber <matthew.weber@collins.com>
> Signed-off-by: Baruch Siach <baruch@tkos.co.il>
> ---
>   ...for-the-stdatomic.h-header-in-config.patch | 70 +++++++++++++++++++
>   package/libcurl/libcurl.mk                    |  6 ++
>   2 files changed, 76 insertions(+)
>   create mode 100644 package/libcurl/0002-configure-check-for-the-stdatomic.h-header-in-config.patch
> 
> diff --git a/package/libcurl/0002-configure-check-for-the-stdatomic.h-header-in-config.patch b/package/libcurl/0002-configure-check-for-the-stdatomic.h-header-in-config.patch
> new file mode 100644
> index 000000000000..083238819b1b
> --- /dev/null
> +++ b/package/libcurl/0002-configure-check-for-the-stdatomic.h-header-in-config.patch
> @@ -0,0 +1,70 @@
> +From a68074b5db2a1fb637853b808e5b263c2ce9cbdd Mon Sep 17 00:00:00 2001
> +From: Daniel Stenberg <daniel@haxx.se>
> +Date: Tue, 28 Jun 2022 08:37:22 +0200
> +Subject: [PATCH] configure: check for the stdatomic.h header in configure
> +
> +... and only set HAVE_ATOMIC if that header exists since we use
> +typedefes set in it.
> +
> +Reported-by: Ryan Schmidt
> +Fixes #9059
> +Closes #9060
> +
> +Signed-off-by: Baruch Siach <baruch@tkos.co.il>
> +---
> +Upstream status: commit a68074b5db2a1fb637853b808e5b263c2ce9cbdd
> +
> + m4/curl-functions.m4 | 36 +++++++++++++++++++-----------------
> + 1 file changed, 19 insertions(+), 17 deletions(-)
> +
> +diff --git a/m4/curl-functions.m4 b/m4/curl-functions.m4
> +index ec406f56aed8..f3e12a53a9fd 100644
> +--- a/m4/curl-functions.m4
> ++++ b/m4/curl-functions.m4
> +@@ -6570,24 +6570,26 @@ AC_DEFUN([CURL_COVERAGE],[
> + ])
> +
> + dnl CURL_ATOMIC
> +-dnl --------------------------------------------------
> +-dnl Check if _Atomic works
> ++dnl -------------------------------------------------------------
> ++dnl Check if _Atomic works. But only check if stdatomic.h exists.
> + dnl
> + AC_DEFUN([CURL_ATOMIC],[
> +-  AC_MSG_CHECKING([if _Atomic is available])
> +-  AC_COMPILE_IFELSE([
> +-    AC_LANG_PROGRAM([[
> +-      $curl_includes_unistd
> +-    ]],[[
> +-      _Atomic int i = 0;
> +-    ]])
> +-  ],[
> +-    AC_MSG_RESULT([yes])
> +-    AC_DEFINE_UNQUOTED(HAVE_ATOMIC, 1,
> +-      [Define to 1 if you have _Atomic support.])
> +-    tst_atomic="yes"
> +-  ],[
> +-    AC_MSG_RESULT([no])
> +-    tst_atomic="no"
> ++  AC_CHECK_HEADERS(stdatomic.h, [
> ++    AC_MSG_CHECKING([if _Atomic is available])
> ++    AC_COMPILE_IFELSE([
> ++      AC_LANG_PROGRAM([[
> ++        $curl_includes_unistd
> ++      ]],[[
> ++        _Atomic int i = 0;
> ++      ]])
> ++    ],[
> ++      AC_MSG_RESULT([yes])
> ++      AC_DEFINE_UNQUOTED(HAVE_ATOMIC, 1,
> ++        [Define to 1 if you have _Atomic support.])
> ++      tst_atomic="yes"
> ++    ],[
> ++      AC_MSG_RESULT([no])
> ++      tst_atomic="no"
> ++    ])
> +   ])
> + ])
> +--
> +2.35.1
> +
> diff --git a/package/libcurl/libcurl.mk b/package/libcurl/libcurl.mk
> index 5dc4eebefa49..ab2fd75276b2 100644
> --- a/package/libcurl/libcurl.mk
> +++ b/package/libcurl/libcurl.mk
> @@ -15,6 +15,8 @@ LIBCURL_LICENSE_FILES = COPYING
>   LIBCURL_CPE_ID_VENDOR = haxx
>   LIBCURL_CPE_ID_PRODUCT = libcurl
>   LIBCURL_INSTALL_STAGING = YES
> +# We are patching configure.ac
> +LIBCURL_AUTORECONF = YES
>   
>   # We disable NTLM support because it uses fork(), which doesn't work
>   # on non-MMU platforms. Moreover, this authentication method is
> @@ -36,6 +38,10 @@ ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y)
>   LIBCURL_CONF_OPTS += LIBS=-latomic
>   endif
>   
> +ifeq ($(BR2_TOOLCHAIN_HAS_SYNC_1),)
> +LIBCURL_CONF_ENV += ac_cv_header_stdatomic_h=no

  I've added a comment to explain why this is needed, and applied to master, thanks.

  Regards,
  Arnout

> +endif
> +
>   ifeq ($(BR2_PACKAGE_LIBCURL_VERBOSE),y)
>   LIBCURL_CONF_OPTS += --enable-verbose
>   else
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

  reply	other threads:[~2022-07-23 11:49 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-21 16:10 [Buildroot] [PATCH] package/libcurl: fix build when !BR2_TOOLCHAIN_HAS_SYNC_1 Baruch Siach via buildroot
2022-07-23 11:49 ` Arnout Vandecappelle [this message]
2022-08-12 15:11 ` Peter Korsgaard

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5bbf502b-5fe5-45af-319f-dd05251d9a4e@mind.be \
    --to=arnout@mind.be \
    --cc=baruch@tkos.co.il \
    --cc=buildroot@busybox.net \
    --cc=matthew.weber@collins.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.