diff mbox series

[v2,2/2] package/boost: threads needs date-time

Message ID 20211119175553.2413433-2-fontaine.fabrice@gmail.com
State Rejected
Headers show
Series [v2,1/2] Revert "package/log4cxx: select boost chrono and date-time with gcc < 7" | expand

Commit Message

Fabrice Fontaine Nov. 19, 2021, 5:55 p.m. UTC
Fix the following build failure with gcc >= 7 raised since commit
4e267a7d3d5d350710a81ada188a1629348e4b4a because until cmake 3.21.3 and
https://github.com/Kitware/CMake/commit/1ad0c5ae53fc0c4f774166337f0e9c93c578cf9b,
cmake assumed that boost threads depends on boost date-time. As, we
can't patch all cmake in the field, just select boost date-time.

-- Found Boost: /home/buildroot/autobuild/instance-3/output-1/host/sh4-buildroot-linux-uclibc/sysroot/usr/include (found version "1.77.0") found components: thread chrono atomic missing components: date_time

Fixes:
 - http://autobuild.buildroot.org/results/e7443e3bc955e7eddd7bed63e2728880dabb31a7

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
Changes v1 -> v2 (after review of Yann E. Morin):
 - Update commit message to explain the relationship with cmake

 package/boost/Config.in | 1 +
 1 file changed, 1 insertion(+)

Comments

Thomas Petazzoni Nov. 21, 2021, 7:43 p.m. UTC | #1
On Fri, 19 Nov 2021 18:55:53 +0100
Fabrice Fontaine <fontaine.fabrice@gmail.com> wrote:

> Fix the following build failure with gcc >= 7 raised since commit
> 4e267a7d3d5d350710a81ada188a1629348e4b4a because until cmake 3.21.3 and
> https://github.com/Kitware/CMake/commit/1ad0c5ae53fc0c4f774166337f0e9c93c578cf9b,
> cmake assumed that boost threads depends on boost date-time. As, we
> can't patch all cmake in the field, just select boost date-time.
> 
> -- Found Boost: /home/buildroot/autobuild/instance-3/output-1/host/sh4-buildroot-linux-uclibc/sysroot/usr/include (found version "1.77.0") found components: thread chrono atomic missing components: date_time
> 
> Fixes:
>  - http://autobuild.buildroot.org/results/e7443e3bc955e7eddd7bed63e2728880dabb31a7

So just to work-around a CMake < 3.21.3 bug, we force this select in
Boost? This doesn't feel like a very good solution :-/

Even in Buildroot, we're still using CMake 3.16.9.

Thomas
Arnout Vandecappelle Nov. 22, 2021, 8:53 p.m. UTC | #2
On 21/11/2021 20:43, Thomas Petazzoni wrote:
> On Fri, 19 Nov 2021 18:55:53 +0100
> Fabrice Fontaine <fontaine.fabrice@gmail.com> wrote:
> 
>> Fix the following build failure with gcc >= 7 raised since commit
>> 4e267a7d3d5d350710a81ada188a1629348e4b4a because until cmake 3.21.3 and
>> https://github.com/Kitware/CMake/commit/1ad0c5ae53fc0c4f774166337f0e9c93c578cf9b,
>> cmake assumed that boost threads depends on boost date-time. As, we
>> can't patch all cmake in the field, just select boost date-time.
>>
>> -- Found Boost: /home/buildroot/autobuild/instance-3/output-1/host/sh4-buildroot-linux-uclibc/sysroot/usr/include (found version "1.77.0") found components: thread chrono atomic missing components: date_time
>>
>> Fixes:
>>   - http://autobuild.buildroot.org/results/e7443e3bc955e7eddd7bed63e2728880dabb31a7
> 
> So just to work-around a CMake < 3.21.3 bug, we force this select in
> Boost? This doesn't feel like a very good solution :-/
> 
> Even in Buildroot, we're still using CMake 3.16.9.

  So what we could do instead is to bump CMake to 3.22, and set our mininum 
CMake version to 3.21.3. This is going to hurt the build time for some people, 
but I guess it's better than forcing boost date-time?

  On the other hand, boost date-time probably has a very small additional size 
cost compared to the rest of boost, so this patch is probably a better ad hoc 
solution. I'd just add a comment in the Config.in file to explain that this is 
just a workaround, with a longer explanation in the commit message.


  Regards,
  Arnout
Thomas Petazzoni Nov. 23, 2021, 11:24 a.m. UTC | #3
On Mon, 22 Nov 2021 21:53:18 +0100
Arnout Vandecappelle <arnout@mind.be> wrote:

>   So what we could do instead is to bump CMake to 3.22, and set our mininum 
> CMake version to 3.21.3. This is going to hurt the build time for some people, 
> but I guess it's better than forcing boost date-time?
> 
>   On the other hand, boost date-time probably has a very small additional size 
> cost compared to the rest of boost, so this patch is probably a better ad hoc 
> solution. I'd just add a comment in the Config.in file to explain that this is 
> just a workaround, with a longer explanation in the commit message.

Fair enough, that works for me. We need to remember to drop that
workaround at some point in the future, when we require at least CMake
3.21.3.

Thomas
diff mbox series

Patch

diff --git a/package/boost/Config.in b/package/boost/Config.in
index 1c405a36c3..8310294ffd 100644
--- a/package/boost/Config.in
+++ b/package/boost/Config.in
@@ -348,6 +348,7 @@  config BR2_PACKAGE_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_CHRONO
+	select BR2_PACKAGE_BOOST_DATE_TIME
 	select BR2_PACKAGE_BOOST_SYSTEM
 	help
 	  Portable C++ multi-threading. C++11, C++14.