[MCOL-5611] fails to build with Boost-1.81 (fedora 39) Created: 2023-11-15  Updated: 2024-01-23  Resolved: 2024-01-23

Status: Closed
Project: MariaDB ColumnStore
Component/s: Build
Affects Version/s: 5.6.5
Fix Version/s: N/A

Type: Bug Priority: Major
Reporter: Daniel Black Assignee: Roman
Resolution: Won't Fix Votes: 0
Labels: None

Issue Links:
Blocks
blocks MDBF-632 Fedora 39 RPMs not available/builds f... Open
Relates
relates to MDEV-33290 Disable ColumnStore based on boost ve... Closed

 Description   

Fails to compile on Fedora 39 (boost-1.81):

Function may be gone:

$ grep -r next_prime /usr/include/boost/
/usr/include/boost/math/differentiation/lanczos_smoothing.hpp:    Real next_prime()
/usr/include/boost/math/differentiation/lanczos_smoothing.hpp:        dlp.next_prime();
/usr/include/boost/math/differentiation/lanczos_smoothing.hpp:        coeffs[l] = dlp.next_prime()/ dlp.norm_sq(l);
/usr/include/boost/math/differentiation/lanczos_smoothing.hpp:        coeffs[l] = dlp.next_prime()/ dlp.norm_sq(l);

columnstore/columnstore/versioning/BRM/extentmap.cpp:450:59: error: ‘next_prime’ is not a member of ‘boost::unordered::detail’
  450 |     const auto bucketCapacity = boost::unordered::detail::next_prime(partitionsSize + 1);
      |                                                           ^~~~~~~~~~



 Comments   
Comment by Roman [ 2023-11-27 ]

Sorry danblack but with high probability we won't fix this in the version that MDB 10.5 uses b/c we need to make MCS release so that you can reference it.
This issue has been fixed for MDB starting from 10.6 and I suggest to use MCS refs if you need to fix the build on fedora.

Comment by Roman [ 2023-11-27 ]

I reconsidered this.
I need more info on this case b/c according with my research boost 1.81 delivers next_prime function in the header used in MCS code. This might be something fc39 specific.

boost-lib/include/boost/math/differentiation/lanczos_smoothing.hpp
boost-lib/include/boost/unordered/detail/implementation.hpp
src/external_boost/boost/math/differentiation/lanczos_smoothing.hpp
src/external_boost/boost/unordered/detail/implementation.hpp
src/external_boost/libs/math/test/lanczos_smoothing_test.cpp
src/external_boost/libs/unordered/test/unordered/detail_tests.cpp

Comment by Daniel Black [ 2023-11-28 ]

https://github.com/boostorg/unordered/blob/boost-1.81.0/include/boost/unordered/detail/implementation.hpp - can't see it (or locally on fc39).

I looked around https://src.fedoraproject.org/rpms/boost/blob/f39/f/boost.spec and nothing especially invasive.

lanczos_smoothing still has it. Would need to create the object and use next_prime as a method there.

Comment by Daniel Black [ 2024-01-23 ]

Closing due to resources.

MariaDB versions above 10.5 unaffected.

Generated at Thu Feb 08 02:59:09 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.