* [Buildroot] [PATCH v2, 1/1] package/boost: atomics needs always lockfree atomic bytes
@ 2020-12-05 22:15 Fabrice Fontaine
2021-01-02 21:41 ` Yann E. MORIN
2021-01-05 22:04 ` Peter Korsgaard
0 siblings, 2 replies; 3+ messages in thread
From: Fabrice Fontaine @ 2020-12-05 22:15 UTC (permalink / raw)
To: buildroot
Since version 1.74.0, boost atomics needs a toolchain that always
supports lockfree atomic bytes so add dependendy on
BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS:
https://github.com/boostorg/atomic/issues/42
Fixes:
- http://autobuild.buildroot.org/results/c03a786791e3aa7801cf1bff9934c4a105f54ce1
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
Changes v1 -> v2 (after review of Thomas Petazzoni):
- Use && instead of ||?in bitcoin and gqrx comment
- Drop select of boost-atomic in boost-thread
- Update reverse dependencies of boost-thread: boost-context,
boost-coroutine, boost-fiber, boost-locale, boost-type_erasure,
boost-wave
package/azmq/Config.in | 2 ++
package/bitcoin/Config.in | 4 +++-
package/boost/Config.in | 26 ++++++++++++++++++++------
package/domoticz/Config.in | 2 ++
package/gnuradio/Config.in | 2 ++
package/gqrx/Config.in | 2 ++
package/libcpprestsdk/Config.in | 2 ++
package/uhd/Config.in | 2 ++
8 files changed, 35 insertions(+), 7 deletions(-)
diff --git a/package/azmq/Config.in b/package/azmq/Config.in
index 2904890d5f..37131a260a 100644
--- a/package/azmq/Config.in
+++ b/package/azmq/Config.in
@@ -5,6 +5,7 @@ config BR2_PACKAGE_AZMQ
depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # boost-log
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11
depends on BR2_USE_WCHAR # boost
+ depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-thread
depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # exception_ptr
select BR2_PACKAGE_ZEROMQ
select BR2_PACKAGE_BOOST
@@ -21,6 +22,7 @@ config BR2_PACKAGE_AZMQ
https://github.com/zeromq/azmq
comment "azmq needs a toolchain w/ C++11, wchar and NPTL"
+ depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
depends on !(BR2_INSTALL_LIBSTDCPP && BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 \
&& BR2_USE_WCHAR && BR2_TOOLCHAIN_HAS_THREADS_NPTL)
diff --git a/package/bitcoin/Config.in b/package/bitcoin/Config.in
index 65af15293d..da8452ef5a 100644
--- a/package/bitcoin/Config.in
+++ b/package/bitcoin/Config.in
@@ -10,6 +10,7 @@ config BR2_PACKAGE_BITCOIN_ARCH_SUPPORTS
config BR2_PACKAGE_BITCOIN
bool "bitcoin"
depends on BR2_INSTALL_LIBSTDCPP
+ depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-thread
depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # std::future
depends on BR2_PACKAGE_BITCOIN_ARCH_SUPPORTS
depends on BR2_TOOLCHAIN_HAS_THREADS # boost
@@ -36,7 +37,8 @@ config BR2_PACKAGE_BITCOIN
https://bitcoincore.org
comment "bitcoin needs a toolchain w/ C++, threads, wchar"
- depends on BR2_PACKAGE_BITCOIN_ARCH_SUPPORTS
+ depends on BR2_PACKAGE_BITCOIN_ARCH_SUPPORTS && \
+ BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
depends on !BR2_INSTALL_LIBSTDCPP || \
!BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR
diff --git a/package/boost/Config.in b/package/boost/Config.in
index 121650b8bc..1f85726ca2 100644
--- a/package/boost/Config.in
+++ b/package/boost/Config.in
@@ -52,6 +52,7 @@ config BR2_PACKAGE_BOOST_LAYOUT
config BR2_PACKAGE_BOOST_ATOMIC
bool "boost-atomic"
+ depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
help
C++11-style atomic<>.
@@ -82,6 +83,7 @@ config BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS
config BR2_PACKAGE_BOOST_CONTEXT
bool "boost-context"
depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS
+ depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS || BR2_TOOLCHAIN_GCC_AT_LEAST_6 # boost-thread
depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735
select BR2_PACKAGE_BOOST_THREAD if !BR2_TOOLCHAIN_GCC_AT_LEAST_6
help
@@ -101,6 +103,7 @@ comment "boost-contract needs a toolchain w/ NPTL"
config BR2_PACKAGE_BOOST_COROUTINE
bool "boost-coroutine"
depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS
+ depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-thread
depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-context, boost-thread
select BR2_PACKAGE_BOOST_CHRONO
select BR2_PACKAGE_BOOST_CONTEXT
@@ -112,7 +115,8 @@ config BR2_PACKAGE_BOOST_COROUTINE
selected.
comment "boost-coroutine needs a toolchain not affected by GCC bug 64735"
- depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS
+ depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS && \
+ BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735
config BR2_PACKAGE_BOOST_DATE_TIME
@@ -135,6 +139,7 @@ config BR2_PACKAGE_BOOST_FIBER
# mips support uses the "pause" instruction, only available
# since mips32r2/mips64r2.
depends on !BR2_MIPS_CPU_MIPS32 && !BR2_MIPS_CPU_MIPS64
+ depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS || BR2_TOOLCHAIN_GCC_AT_LEAST_6 # boost-context -> boost-thread
depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-context
select BR2_PACKAGE_BOOST_CONTEXT
select BR2_PACKAGE_BOOST_FILESYSTEM
@@ -143,11 +148,13 @@ config BR2_PACKAGE_BOOST_FIBER
C++11 userland threads library.
comment "boost-fiber needs a toolchain w/ NPTL"
- depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS
+ depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS && \
+ (BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS || BR2_TOOLCHAIN_GCC_AT_LEAST_6)
depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL
comment "boost-fiber needs a toolchain not affected by GCC bug 64735"
- depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS
+ depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS && \
+ (BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS || BR2_TOOLCHAIN_GCC_AT_LEAST_6)
depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735
config BR2_PACKAGE_BOOST_FILESYSTEM
@@ -190,6 +197,7 @@ config BR2_PACKAGE_BOOST_LOCALE
# details.
depends on !(BR2_STATIC_LIBS && BR2_PACKAGE_ICU)
depends on !(BR2_TOOLCHAIN_HAS_GCC_BUG_64735 && BR2_PACKAGE_ICU) # boost-thread
+ depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS || !BR2_PACKAGE_ICU # boost-thread
select BR2_PACKAGE_BOOST_SYSTEM
select BR2_PACKAGE_BOOST_THREAD if BR2_PACKAGE_ICU
select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
@@ -197,16 +205,19 @@ config BR2_PACKAGE_BOOST_LOCALE
Provide localization and Unicode handling tools for C++.
comment "boost-locale needs a toolchain w/ dynamic library"
- depends on BR2_PACKAGE_ICU
+ depends on BR2_PACKAGE_ICU && \
+ BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
depends on BR2_STATIC_LIBS
comment "boost-locale needs a toolchain not affected by GCC bug 64735"
- depends on BR2_PACKAGE_ICU
+ depends on BR2_PACKAGE_ICU && \
+ BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735
config BR2_PACKAGE_BOOST_LOG
bool "boost-log"
depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
+ depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-atomic
depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-thread
select BR2_PACKAGE_BOOST_ATOMIC
select BR2_PACKAGE_BOOST_DATE_TIME
@@ -218,6 +229,7 @@ config BR2_PACKAGE_BOOST_LOG
Logging library.
comment "boost-log needs a toolchain w/ NPTL"
+ depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL
comment "boost-log needs a toolchain not affected by GCC bug 64735"
@@ -313,8 +325,8 @@ config BR2_PACKAGE_BOOST_TEST
config BR2_PACKAGE_BOOST_THREAD
bool "boost-thread"
+ depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # std::current_exception
- select BR2_PACKAGE_BOOST_ATOMIC if !BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
select BR2_PACKAGE_BOOST_CHRONO
select BR2_PACKAGE_BOOST_SYSTEM
help
@@ -332,6 +344,7 @@ config BR2_PACKAGE_BOOST_TIMER
config BR2_PACKAGE_BOOST_TYPE_ERASURE
bool "boost-type_erasure"
+ depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-thread
depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-thread
select BR2_PACKAGE_BOOST_SYSTEM
select BR2_PACKAGE_BOOST_THREAD
@@ -346,6 +359,7 @@ config BR2_PACKAGE_BOOST_WAVE
# limitation of assembler for coldfire
# error: Tried to convert PC relative branch to absolute jump
depends on !BR2_m68k_cf
+ depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-thread
depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-thread
select BR2_PACKAGE_BOOST_DATE_TIME
select BR2_PACKAGE_BOOST_FILESYSTEM
diff --git a/package/domoticz/Config.in b/package/domoticz/Config.in
index ea7614ed51..3771e8c9eb 100644
--- a/package/domoticz/Config.in
+++ b/package/domoticz/Config.in
@@ -8,6 +8,7 @@ config BR2_PACKAGE_DOMOTICZ
depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_USE_WCHAR
depends on BR2_PACKAGE_LUA_5_3
+ depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-thread
depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # exception_ptr
select BR2_PACKAGE_BOOST
select BR2_PACKAGE_BOOST_DATE_TIME
@@ -32,6 +33,7 @@ config BR2_PACKAGE_DOMOTICZ
comment "domoticz needs lua 5.3 and a toolchain w/ C++, gcc >= 4.8, NPTL, wchar, dynamic library"
depends on BR2_USE_MMU
+ depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
depends on !BR2_INSTALL_LIBSTDCPP || \
!BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || \
!BR2_TOOLCHAIN_HAS_THREADS_NPTL || \
diff --git a/package/gnuradio/Config.in b/package/gnuradio/Config.in
index cd31ce8864..c7b01b454b 100644
--- a/package/gnuradio/Config.in
+++ b/package/gnuradio/Config.in
@@ -1,5 +1,6 @@
comment "gnuradio needs a toolchain w/ C++, NPTL, wchar, dynamic library"
depends on BR2_USE_MMU
+ depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \
!BR2_TOOLCHAIN_HAS_THREADS_NPTL || BR2_STATIC_LIBS
@@ -13,6 +14,7 @@ config BR2_PACKAGE_GNURADIO
depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
depends on BR2_USE_MMU # use fork()
depends on BR2_USE_WCHAR # boost
+ depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-atomic
depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-thread
select BR2_PACKAGE_BOOST
select BR2_PACKAGE_BOOST_ATOMIC
diff --git a/package/gqrx/Config.in b/package/gqrx/Config.in
index d873c6a4d4..af4d69381e 100644
--- a/package/gqrx/Config.in
+++ b/package/gqrx/Config.in
@@ -1,6 +1,7 @@
comment "gqrx needs a toolchain w/ C++, threads, wchar, dynamic library"
depends on BR2_USE_MMU # gnuradio
depends on BR2_TOOLCHAIN_HAS_SYNC_4 || BR2_TOOLCHAIN_HAS_ATOMIC
+ depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \
!BR2_USE_WCHAR || !BR2_STATIC_LIBS
@@ -19,6 +20,7 @@ config BR2_PACKAGE_GQRX
depends on BR2_USE_WCHAR # boost
depends on BR2_TOOLCHAIN_HAS_SYNC_4 || BR2_TOOLCHAIN_HAS_ATOMIC
depends on BR2_PACKAGE_QT5
+ depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # gnuradio -> boost-atomic
depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # gnuradio
select BR2_PACKAGE_BOOST
select BR2_PACKAGE_BOOST_PROGRAM_OPTIONS
diff --git a/package/libcpprestsdk/Config.in b/package/libcpprestsdk/Config.in
index af97509d1b..97f00e3383 100644
--- a/package/libcpprestsdk/Config.in
+++ b/package/libcpprestsdk/Config.in
@@ -3,6 +3,7 @@ config BR2_PACKAGE_LIBCPPRESTSDK
depends on BR2_ENABLE_LOCALE
depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_USE_WCHAR # boost
+ depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-atomic
depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # exception_ptr
depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
select BR2_PACKAGE_BOOST
@@ -23,6 +24,7 @@ config BR2_PACKAGE_LIBCPPRESTSDK
https://github.com/Microsoft/cpprestsdk
comment "libcpprestsdk needs a toolchain w/ NPTL, C++, wchar, locale"
+ depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL || \
!BR2_INSTALL_LIBSTDCPP || \
!BR2_USE_WCHAR || !BR2_ENABLE_LOCALE
diff --git a/package/uhd/Config.in b/package/uhd/Config.in
index 32cb4cf89d..b9aa665c31 100644
--- a/package/uhd/Config.in
+++ b/package/uhd/Config.in
@@ -1,5 +1,6 @@
comment "uhd needs a toolchain w/ C++, NPTL, wchar, dynamic library"
depends on BR2_USE_MMU
+ depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \
!BR2_TOOLCHAIN_HAS_THREADS_NPTL || BR2_STATIC_LIBS
@@ -10,6 +11,7 @@ config BR2_PACKAGE_UHD
bool "uhd"
depends on BR2_INSTALL_LIBSTDCPP
depends on !BR2_STATIC_LIBS
+ depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-atomic
depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-thread
depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
depends on BR2_USE_MMU # use fork()
--
2.29.2
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [Buildroot] [PATCH v2, 1/1] package/boost: atomics needs always lockfree atomic bytes
2020-12-05 22:15 [Buildroot] [PATCH v2, 1/1] package/boost: atomics needs always lockfree atomic bytes Fabrice Fontaine
@ 2021-01-02 21:41 ` Yann E. MORIN
2021-01-05 22:04 ` Peter Korsgaard
1 sibling, 0 replies; 3+ messages in thread
From: Yann E. MORIN @ 2021-01-02 21:41 UTC (permalink / raw)
To: buildroot
Fabrice, All,
On 2020-12-05 23:15 +0100, Fabrice Fontaine spake thusly:
> Since version 1.74.0, boost atomics needs a toolchain that always
> supports lockfree atomic bytes so add dependendy on
> BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS:
> https://github.com/boostorg/atomic/issues/42
>
> Fixes:
> - http://autobuild.buildroot.org/results/c03a786791e3aa7801cf1bff9934c4a105f54ce1
>
> Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Applied to master, thanks. I however did move the new dependency to its
own separate 'depends on' lines, and split them when too long.
Regards,
Yann E. MORIN.
> ---
> Changes v1 -> v2 (after review of Thomas Petazzoni):
> - Use && instead of ||?in bitcoin and gqrx comment
> - Drop select of boost-atomic in boost-thread
> - Update reverse dependencies of boost-thread: boost-context,
> boost-coroutine, boost-fiber, boost-locale, boost-type_erasure,
> boost-wave
>
> package/azmq/Config.in | 2 ++
> package/bitcoin/Config.in | 4 +++-
> package/boost/Config.in | 26 ++++++++++++++++++++------
> package/domoticz/Config.in | 2 ++
> package/gnuradio/Config.in | 2 ++
> package/gqrx/Config.in | 2 ++
> package/libcpprestsdk/Config.in | 2 ++
> package/uhd/Config.in | 2 ++
> 8 files changed, 35 insertions(+), 7 deletions(-)
>
> diff --git a/package/azmq/Config.in b/package/azmq/Config.in
> index 2904890d5f..37131a260a 100644
> --- a/package/azmq/Config.in
> +++ b/package/azmq/Config.in
> @@ -5,6 +5,7 @@ config BR2_PACKAGE_AZMQ
> depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # boost-log
> depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11
> depends on BR2_USE_WCHAR # boost
> + depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-thread
> depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # exception_ptr
> select BR2_PACKAGE_ZEROMQ
> select BR2_PACKAGE_BOOST
> @@ -21,6 +22,7 @@ config BR2_PACKAGE_AZMQ
> https://github.com/zeromq/azmq
>
> comment "azmq needs a toolchain w/ C++11, wchar and NPTL"
> + depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
> depends on !(BR2_INSTALL_LIBSTDCPP && BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 \
> && BR2_USE_WCHAR && BR2_TOOLCHAIN_HAS_THREADS_NPTL)
>
> diff --git a/package/bitcoin/Config.in b/package/bitcoin/Config.in
> index 65af15293d..da8452ef5a 100644
> --- a/package/bitcoin/Config.in
> +++ b/package/bitcoin/Config.in
> @@ -10,6 +10,7 @@ config BR2_PACKAGE_BITCOIN_ARCH_SUPPORTS
> config BR2_PACKAGE_BITCOIN
> bool "bitcoin"
> depends on BR2_INSTALL_LIBSTDCPP
> + depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-thread
> depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # std::future
> depends on BR2_PACKAGE_BITCOIN_ARCH_SUPPORTS
> depends on BR2_TOOLCHAIN_HAS_THREADS # boost
> @@ -36,7 +37,8 @@ config BR2_PACKAGE_BITCOIN
> https://bitcoincore.org
>
> comment "bitcoin needs a toolchain w/ C++, threads, wchar"
> - depends on BR2_PACKAGE_BITCOIN_ARCH_SUPPORTS
> + depends on BR2_PACKAGE_BITCOIN_ARCH_SUPPORTS && \
> + BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
> depends on !BR2_INSTALL_LIBSTDCPP || \
> !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR
>
> diff --git a/package/boost/Config.in b/package/boost/Config.in
> index 121650b8bc..1f85726ca2 100644
> --- a/package/boost/Config.in
> +++ b/package/boost/Config.in
> @@ -52,6 +52,7 @@ config BR2_PACKAGE_BOOST_LAYOUT
>
> config BR2_PACKAGE_BOOST_ATOMIC
> bool "boost-atomic"
> + depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
> help
> C++11-style atomic<>.
>
> @@ -82,6 +83,7 @@ config BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS
> config BR2_PACKAGE_BOOST_CONTEXT
> bool "boost-context"
> depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS
> + depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS || BR2_TOOLCHAIN_GCC_AT_LEAST_6 # boost-thread
> depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735
> select BR2_PACKAGE_BOOST_THREAD if !BR2_TOOLCHAIN_GCC_AT_LEAST_6
> help
> @@ -101,6 +103,7 @@ comment "boost-contract needs a toolchain w/ NPTL"
> config BR2_PACKAGE_BOOST_COROUTINE
> bool "boost-coroutine"
> depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS
> + depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-thread
> depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-context, boost-thread
> select BR2_PACKAGE_BOOST_CHRONO
> select BR2_PACKAGE_BOOST_CONTEXT
> @@ -112,7 +115,8 @@ config BR2_PACKAGE_BOOST_COROUTINE
> selected.
>
> comment "boost-coroutine needs a toolchain not affected by GCC bug 64735"
> - depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS
> + depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS && \
> + BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
> depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735
>
> config BR2_PACKAGE_BOOST_DATE_TIME
> @@ -135,6 +139,7 @@ config BR2_PACKAGE_BOOST_FIBER
> # mips support uses the "pause" instruction, only available
> # since mips32r2/mips64r2.
> depends on !BR2_MIPS_CPU_MIPS32 && !BR2_MIPS_CPU_MIPS64
> + depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS || BR2_TOOLCHAIN_GCC_AT_LEAST_6 # boost-context -> boost-thread
> depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-context
> select BR2_PACKAGE_BOOST_CONTEXT
> select BR2_PACKAGE_BOOST_FILESYSTEM
> @@ -143,11 +148,13 @@ config BR2_PACKAGE_BOOST_FIBER
> C++11 userland threads library.
>
> comment "boost-fiber needs a toolchain w/ NPTL"
> - depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS
> + depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS && \
> + (BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS || BR2_TOOLCHAIN_GCC_AT_LEAST_6)
> depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL
>
> comment "boost-fiber needs a toolchain not affected by GCC bug 64735"
> - depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS
> + depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS && \
> + (BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS || BR2_TOOLCHAIN_GCC_AT_LEAST_6)
> depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735
>
> config BR2_PACKAGE_BOOST_FILESYSTEM
> @@ -190,6 +197,7 @@ config BR2_PACKAGE_BOOST_LOCALE
> # details.
> depends on !(BR2_STATIC_LIBS && BR2_PACKAGE_ICU)
> depends on !(BR2_TOOLCHAIN_HAS_GCC_BUG_64735 && BR2_PACKAGE_ICU) # boost-thread
> + depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS || !BR2_PACKAGE_ICU # boost-thread
> select BR2_PACKAGE_BOOST_SYSTEM
> select BR2_PACKAGE_BOOST_THREAD if BR2_PACKAGE_ICU
> select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
> @@ -197,16 +205,19 @@ config BR2_PACKAGE_BOOST_LOCALE
> Provide localization and Unicode handling tools for C++.
>
> comment "boost-locale needs a toolchain w/ dynamic library"
> - depends on BR2_PACKAGE_ICU
> + depends on BR2_PACKAGE_ICU && \
> + BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
> depends on BR2_STATIC_LIBS
>
> comment "boost-locale needs a toolchain not affected by GCC bug 64735"
> - depends on BR2_PACKAGE_ICU
> + depends on BR2_PACKAGE_ICU && \
> + BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
> depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735
>
> config BR2_PACKAGE_BOOST_LOG
> bool "boost-log"
> depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
> + depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-atomic
> depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-thread
> select BR2_PACKAGE_BOOST_ATOMIC
> select BR2_PACKAGE_BOOST_DATE_TIME
> @@ -218,6 +229,7 @@ config BR2_PACKAGE_BOOST_LOG
> Logging library.
>
> comment "boost-log needs a toolchain w/ NPTL"
> + depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
> depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL
>
> comment "boost-log needs a toolchain not affected by GCC bug 64735"
> @@ -313,8 +325,8 @@ config BR2_PACKAGE_BOOST_TEST
>
> config BR2_PACKAGE_BOOST_THREAD
> bool "boost-thread"
> + depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
> depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # std::current_exception
> - select BR2_PACKAGE_BOOST_ATOMIC if !BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
> select BR2_PACKAGE_BOOST_CHRONO
> select BR2_PACKAGE_BOOST_SYSTEM
> help
> @@ -332,6 +344,7 @@ config BR2_PACKAGE_BOOST_TIMER
>
> config BR2_PACKAGE_BOOST_TYPE_ERASURE
> bool "boost-type_erasure"
> + depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-thread
> depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-thread
> select BR2_PACKAGE_BOOST_SYSTEM
> select BR2_PACKAGE_BOOST_THREAD
> @@ -346,6 +359,7 @@ config BR2_PACKAGE_BOOST_WAVE
> # limitation of assembler for coldfire
> # error: Tried to convert PC relative branch to absolute jump
> depends on !BR2_m68k_cf
> + depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-thread
> depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-thread
> select BR2_PACKAGE_BOOST_DATE_TIME
> select BR2_PACKAGE_BOOST_FILESYSTEM
> diff --git a/package/domoticz/Config.in b/package/domoticz/Config.in
> index ea7614ed51..3771e8c9eb 100644
> --- a/package/domoticz/Config.in
> +++ b/package/domoticz/Config.in
> @@ -8,6 +8,7 @@ config BR2_PACKAGE_DOMOTICZ
> depends on BR2_INSTALL_LIBSTDCPP
> depends on BR2_USE_WCHAR
> depends on BR2_PACKAGE_LUA_5_3
> + depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-thread
> depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # exception_ptr
> select BR2_PACKAGE_BOOST
> select BR2_PACKAGE_BOOST_DATE_TIME
> @@ -32,6 +33,7 @@ config BR2_PACKAGE_DOMOTICZ
>
> comment "domoticz needs lua 5.3 and a toolchain w/ C++, gcc >= 4.8, NPTL, wchar, dynamic library"
> depends on BR2_USE_MMU
> + depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
> depends on !BR2_INSTALL_LIBSTDCPP || \
> !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || \
> !BR2_TOOLCHAIN_HAS_THREADS_NPTL || \
> diff --git a/package/gnuradio/Config.in b/package/gnuradio/Config.in
> index cd31ce8864..c7b01b454b 100644
> --- a/package/gnuradio/Config.in
> +++ b/package/gnuradio/Config.in
> @@ -1,5 +1,6 @@
> comment "gnuradio needs a toolchain w/ C++, NPTL, wchar, dynamic library"
> depends on BR2_USE_MMU
> + depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
> depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \
> !BR2_TOOLCHAIN_HAS_THREADS_NPTL || BR2_STATIC_LIBS
>
> @@ -13,6 +14,7 @@ config BR2_PACKAGE_GNURADIO
> depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
> depends on BR2_USE_MMU # use fork()
> depends on BR2_USE_WCHAR # boost
> + depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-atomic
> depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-thread
> select BR2_PACKAGE_BOOST
> select BR2_PACKAGE_BOOST_ATOMIC
> diff --git a/package/gqrx/Config.in b/package/gqrx/Config.in
> index d873c6a4d4..af4d69381e 100644
> --- a/package/gqrx/Config.in
> +++ b/package/gqrx/Config.in
> @@ -1,6 +1,7 @@
> comment "gqrx needs a toolchain w/ C++, threads, wchar, dynamic library"
> depends on BR2_USE_MMU # gnuradio
> depends on BR2_TOOLCHAIN_HAS_SYNC_4 || BR2_TOOLCHAIN_HAS_ATOMIC
> + depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
> depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \
> !BR2_USE_WCHAR || !BR2_STATIC_LIBS
>
> @@ -19,6 +20,7 @@ config BR2_PACKAGE_GQRX
> depends on BR2_USE_WCHAR # boost
> depends on BR2_TOOLCHAIN_HAS_SYNC_4 || BR2_TOOLCHAIN_HAS_ATOMIC
> depends on BR2_PACKAGE_QT5
> + depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # gnuradio -> boost-atomic
> depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # gnuradio
> select BR2_PACKAGE_BOOST
> select BR2_PACKAGE_BOOST_PROGRAM_OPTIONS
> diff --git a/package/libcpprestsdk/Config.in b/package/libcpprestsdk/Config.in
> index af97509d1b..97f00e3383 100644
> --- a/package/libcpprestsdk/Config.in
> +++ b/package/libcpprestsdk/Config.in
> @@ -3,6 +3,7 @@ config BR2_PACKAGE_LIBCPPRESTSDK
> depends on BR2_ENABLE_LOCALE
> depends on BR2_INSTALL_LIBSTDCPP
> depends on BR2_USE_WCHAR # boost
> + depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-atomic
> depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # exception_ptr
> depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
> select BR2_PACKAGE_BOOST
> @@ -23,6 +24,7 @@ config BR2_PACKAGE_LIBCPPRESTSDK
> https://github.com/Microsoft/cpprestsdk
>
> comment "libcpprestsdk needs a toolchain w/ NPTL, C++, wchar, locale"
> + depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
> depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL || \
> !BR2_INSTALL_LIBSTDCPP || \
> !BR2_USE_WCHAR || !BR2_ENABLE_LOCALE
> diff --git a/package/uhd/Config.in b/package/uhd/Config.in
> index 32cb4cf89d..b9aa665c31 100644
> --- a/package/uhd/Config.in
> +++ b/package/uhd/Config.in
> @@ -1,5 +1,6 @@
> comment "uhd needs a toolchain w/ C++, NPTL, wchar, dynamic library"
> depends on BR2_USE_MMU
> + depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS
> depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \
> !BR2_TOOLCHAIN_HAS_THREADS_NPTL || BR2_STATIC_LIBS
>
> @@ -10,6 +11,7 @@ config BR2_PACKAGE_UHD
> bool "uhd"
> depends on BR2_INSTALL_LIBSTDCPP
> depends on !BR2_STATIC_LIBS
> + depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-atomic
> depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-thread
> depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
> depends on BR2_USE_MMU # use fork()
> --
> 2.29.2
>
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
^ permalink raw reply [flat|nested] 3+ messages in thread
* [Buildroot] [PATCH v2, 1/1] package/boost: atomics needs always lockfree atomic bytes
2020-12-05 22:15 [Buildroot] [PATCH v2, 1/1] package/boost: atomics needs always lockfree atomic bytes Fabrice Fontaine
2021-01-02 21:41 ` Yann E. MORIN
@ 2021-01-05 22:04 ` Peter Korsgaard
1 sibling, 0 replies; 3+ messages in thread
From: Peter Korsgaard @ 2021-01-05 22:04 UTC (permalink / raw)
To: buildroot
>>>>> "Fabrice" == Fabrice Fontaine <fontaine.fabrice@gmail.com> writes:
> Since version 1.74.0, boost atomics needs a toolchain that always
> supports lockfree atomic bytes so add dependendy on
> BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS:
> https://github.com/boostorg/atomic/issues/42
> Fixes:
> - http://autobuild.buildroot.org/results/c03a786791e3aa7801cf1bff9934c4a105f54ce1
> Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
> ---
> Changes v1 -> v2 (after review of Thomas Petazzoni):
> - Use && instead of ||?in bitcoin and gqrx comment
> - Drop select of boost-atomic in boost-thread
> - Update reverse dependencies of boost-thread: boost-context,
> boost-coroutine, boost-fiber, boost-locale, boost-type_erasure,
> boost-wave
Committed to 2020.11.x, thanks.
--
Bye, Peter Korsgaard
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2021-01-05 22:04 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-12-05 22:15 [Buildroot] [PATCH v2, 1/1] package/boost: atomics needs always lockfree atomic bytes Fabrice Fontaine
2021-01-02 21:41 ` Yann E. MORIN
2021-01-05 22:04 ` Peter Korsgaard
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox