* [Buildroot] [PATCH] package/libcurl: fix build when !BR2_TOOLCHAIN_HAS_SYNC_1
@ 2022-07-21 16:10 Baruch Siach via buildroot
2022-07-23 11:49 ` Arnout Vandecappelle
2022-08-12 15:11 ` Peter Korsgaard
0 siblings, 2 replies; 3+ messages in thread
From: Baruch Siach via buildroot @ 2022-07-21 16:10 UTC (permalink / raw)
To: buildroot; +Cc: Matt Weber
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>
---
| 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
--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
+endif
+
ifeq ($(BR2_PACKAGE_LIBCURL_VERBOSE),y)
LIBCURL_CONF_OPTS += --enable-verbose
else
--
2.35.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [Buildroot] [PATCH] package/libcurl: fix build when !BR2_TOOLCHAIN_HAS_SYNC_1
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
2022-08-12 15:11 ` Peter Korsgaard
1 sibling, 0 replies; 3+ messages in thread
From: Arnout Vandecappelle @ 2022-07-23 11:49 UTC (permalink / raw)
To: Baruch Siach, buildroot; +Cc: Matt Weber
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
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Buildroot] [PATCH] package/libcurl: fix build when !BR2_TOOLCHAIN_HAS_SYNC_1
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
@ 2022-08-12 15:11 ` Peter Korsgaard
1 sibling, 0 replies; 3+ messages in thread
From: Peter Korsgaard @ 2022-08-12 15:11 UTC (permalink / raw)
To: Baruch Siach via buildroot; +Cc: buildroot, Matt Weber
>>>>> "Baruch" == Baruch Siach via buildroot <buildroot@buildroot.org> writes:
> 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>
Committed to 2022.05.x and 2022.02.x, thanks.
--
Bye, Peter Korsgaard
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2022-08-12 15:11 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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
2022-08-12 15:11 ` Peter Korsgaard
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.