* [Buildroot] [PATCH/next 1/2] squid: remove gnu atomics handling
@ 2018-11-24 14:54 Fabrice Fontaine
2018-11-24 14:54 ` [Buildroot] [PATCH/next 2/2] squid: needs atomic Fabrice Fontaine
2018-11-29 21:58 ` [Buildroot] [PATCH/next 1/2] squid: remove gnu atomics handling Thomas Petazzoni
0 siblings, 2 replies; 4+ messages in thread
From: Fabrice Fontaine @ 2018-11-24 14:54 UTC (permalink / raw)
To: buildroot
gnu atomics has been removed since version 3.5.27:
https://github.com/squid-cache/squid/commit/ddd4edb743d82be97fc651d529e04bf55329a50d
So remove squid_cv_gnu_atomics handling
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
package/squid/squid.mk | 9 ---------
1 file changed, 9 deletions(-)
diff --git a/package/squid/squid.mk b/package/squid/squid.mk
index b661d5d133..2b6c830a62 100644
--- a/package/squid/squid.mk
+++ b/package/squid/squid.mk
@@ -38,15 +38,6 @@ SQUID_CONF_OPTS = \
--with-swapdir=/var/cache/squid/ \
--with-default-user=squid
-# Atomics in Squid use __sync built-ins on 4 and 8 bytes. However, the
-# configure script tests them using AC_TRY_RUN, so we have to give
-# some hints.
-ifeq ($(BR2_TOOLCHAIN_HAS_SYNC_4)$(BR2_TOOLCHAIN_HAS_SYNC_8),yy)
-SQUID_CONF_ENV += squid_cv_gnu_atomics=yes
-else
-SQUID_CONF_ENV += squid_cv_gnu_atomics=no
-endif
-
ifeq ($(BR2_PACKAGE_LIBKRB5),y)
SQUID_CONF_OPTS += --with-mit-krb5
SQUID_DEPENDENCIES += libkrb5
--
2.17.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [Buildroot] [PATCH/next 2/2] squid: needs atomic
2018-11-24 14:54 [Buildroot] [PATCH/next 1/2] squid: remove gnu atomics handling Fabrice Fontaine
@ 2018-11-24 14:54 ` Fabrice Fontaine
2018-11-29 21:58 ` Thomas Petazzoni
2018-11-29 21:58 ` [Buildroot] [PATCH/next 1/2] squid: remove gnu atomics handling Thomas Petazzoni
1 sibling, 1 reply; 4+ messages in thread
From: Fabrice Fontaine @ 2018-11-24 14:54 UTC (permalink / raw)
To: buildroot
Since https://github.com/squid-cache/squid/commit/4b0f89121135aae68fbaf2aa33b5fb2e0da66d3e
squid tries to find if latomic is needed through:
AC_SEARCH_LIBS([__atomic_load_8],[atomic],[ATOMICLIB="-latomic"],[])
However, this can fails on:
configure:21147: /home/fabrice/buildroot/output/host/bin/arc-buildroot-linux-gnu-g++ -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -matomic -Os -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -g conftest.cpp -latomic >&5
conftest.cpp:55:6: error: new declaration 'char __atomic_load_8()' ambiguates built-in declaration 'long long unsigned int __atomic_load_8(const volatile void*, int)' [-fpermissive]
char __atomic_load_8 ();
^~~~~~~~~~~~~~~
conftest.cpp: In function 'int main()':
conftest.cpp:59:25: error: too few arguments to function 'long long unsigned int __atomic_load_8(const volatile void*, int)'
return __atomic_load_8 ();
So add -latomic to LIBS if BR2_TOOLCHAIN_HAS_LIBATOMIC is set
Fixes:
- http://autobuild.buildroot.org/results/13082cea836a12ac8bf85cbdb53a56a5d30c70b1
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
package/squid/Config.in | 2 ++
package/squid/squid.mk | 4 ++++
2 files changed, 6 insertions(+)
diff --git a/package/squid/Config.in b/package/squid/Config.in
index 50f65de433..726160b01d 100644
--- a/package/squid/Config.in
+++ b/package/squid/Config.in
@@ -1,10 +1,12 @@
comment "squid needs a toolchain w/ C++, gcc >= 4.8 not affected by bug 64735"
depends on BR2_USE_MMU
+ depends on BR2_TOOLCHAIN_HAS_ATOMIC
depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 || \
!BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
config BR2_PACKAGE_SQUID
bool "squid"
+ depends on BR2_TOOLCHAIN_HAS_ATOMIC
depends on BR2_INSTALL_LIBSTDCPP
depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # std::current_exception
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11
diff --git a/package/squid/squid.mk b/package/squid/squid.mk
index 2b6c830a62..4a3318b40b 100644
--- a/package/squid/squid.mk
+++ b/package/squid/squid.mk
@@ -38,6 +38,10 @@ SQUID_CONF_OPTS = \
--with-swapdir=/var/cache/squid/ \
--with-default-user=squid
+ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y)
+SQUID_CONF_ENV += LIBS=-latomic
+endif
+
ifeq ($(BR2_PACKAGE_LIBKRB5),y)
SQUID_CONF_OPTS += --with-mit-krb5
SQUID_DEPENDENCIES += libkrb5
--
2.17.1
^ permalink raw reply related [flat|nested] 4+ messages in thread* [Buildroot] [PATCH/next 2/2] squid: needs atomic
2018-11-24 14:54 ` [Buildroot] [PATCH/next 2/2] squid: needs atomic Fabrice Fontaine
@ 2018-11-29 21:58 ` Thomas Petazzoni
0 siblings, 0 replies; 4+ messages in thread
From: Thomas Petazzoni @ 2018-11-29 21:58 UTC (permalink / raw)
To: buildroot
Hello,
On Sat, 24 Nov 2018 15:54:50 +0100, Fabrice Fontaine wrote:
> Since https://github.com/squid-cache/squid/commit/4b0f89121135aae68fbaf2aa33b5fb2e0da66d3e
> squid tries to find if latomic is needed through:
> AC_SEARCH_LIBS([__atomic_load_8],[atomic],[ATOMICLIB="-latomic"],[])
>
> However, this can fails on:
> configure:21147: /home/fabrice/buildroot/output/host/bin/arc-buildroot-linux-gnu-g++ -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -matomic -Os -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -g conftest.cpp -latomic >&5
> conftest.cpp:55:6: error: new declaration 'char __atomic_load_8()' ambiguates built-in declaration 'long long unsigned int __atomic_load_8(const volatile void*, int)' [-fpermissive]
> char __atomic_load_8 ();
> ^~~~~~~~~~~~~~~
> conftest.cpp: In function 'int main()':
> conftest.cpp:59:25: error: too few arguments to function 'long long unsigned int __atomic_load_8(const volatile void*, int)'
> return __atomic_load_8 ();
I've applied to next, but could you fix the upstream code so that the
-latomic detection works correctly, and we can drop the workaround in
Buildroot at some point in the future ?
Thanks a lot!
Thomas
--
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Buildroot] [PATCH/next 1/2] squid: remove gnu atomics handling
2018-11-24 14:54 [Buildroot] [PATCH/next 1/2] squid: remove gnu atomics handling Fabrice Fontaine
2018-11-24 14:54 ` [Buildroot] [PATCH/next 2/2] squid: needs atomic Fabrice Fontaine
@ 2018-11-29 21:58 ` Thomas Petazzoni
1 sibling, 0 replies; 4+ messages in thread
From: Thomas Petazzoni @ 2018-11-29 21:58 UTC (permalink / raw)
To: buildroot
Hello,
On Sat, 24 Nov 2018 15:54:49 +0100, Fabrice Fontaine wrote:
> gnu atomics has been removed since version 3.5.27:
> https://github.com/squid-cache/squid/commit/ddd4edb743d82be97fc651d529e04bf55329a50d
> So remove squid_cv_gnu_atomics handling
>
> Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
> ---
> package/squid/squid.mk | 9 ---------
> 1 file changed, 9 deletions(-)
Applied to next, thanks.
Thomas
--
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2018-11-29 21:58 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-11-24 14:54 [Buildroot] [PATCH/next 1/2] squid: remove gnu atomics handling Fabrice Fontaine
2018-11-24 14:54 ` [Buildroot] [PATCH/next 2/2] squid: needs atomic Fabrice Fontaine
2018-11-29 21:58 ` Thomas Petazzoni
2018-11-29 21:58 ` [Buildroot] [PATCH/next 1/2] squid: remove gnu atomics handling Thomas Petazzoni
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox