Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update pinned build versions for boost and llvm-src #1118

Merged
merged 9 commits into from
May 2, 2023

Conversation

greg7mdp
Copy link
Contributor

@greg7mdp greg7mdp commented May 2, 2023

Resolves #1120

boost: 1.70.0 -> 1.82.0
llvm src (for EOS VM oc): 7.1.0 -> 11.0.1

Removed compilation of boost::filesystem which is not used anymore.
Removed unneeded patch for boost.

Validated on ubuntu 20.04 and 22.04:

137/140 Test   #24: test_resmon_plugin .................................   Passed   67.01 sec
138/140 Test #2055: trx_generator_tests ................................   Passed   92.52 sec
139/140 Test  #122: wasm_config_unit_test_eos-vm-oc ....................   Passed  104.84 sec
140/140 Test #2023: db_modes_test ......................................   Passed  120.37 sec

100% tests passed, 0 tests failed out of 140

@spoonincode
Copy link
Member

this can be updated to 1.71 now

find_package(Boost 1.70 REQUIRED COMPONENTS program_options unit_test_framework system)

and then this can be removed
#if BOOST_VERSION >= 107100
// configurable boost deque performs much better than std::deque in our use cases
using block_1024_option_t = boost::container::deque_options< boost::container::block_size<1024u> >::type;
template<typename T>
using deque = boost::container::deque< T, void, block_1024_option_t >;
#else
template<typename T>
using deque = std::deque<T>;
#endif

@@ -109,9 +109,8 @@ install_boost() {
try wget -O "boost_${BOOST_VER//\./_}.tar.gz" "https://boostorg.jfrog.io/artifactory/main/release/${BOOST_VER}/source/boost_${BOOST_VER//\./_}.tar.gz"
try tar --transform="s:^boost_${BOOST_VER//\./_}:boost_${BOOST_VER//\./_}patched:" -xvzf "boost_${BOOST_VER//\./_}.tar.gz" -C "${DEP_DIR}"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can get rid of the "patched" postfix

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, did both of these!

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can remove scripts/0001-beast-fix-moved-from-executor.patch

Copy link
Contributor Author

@greg7mdp greg7mdp May 2, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can remove scripts/0001-beast-fix-moved-from-executor.patch

Thanks Kevin, done.

@@ -105,7 +105,7 @@ set(Boost_USE_MULTITHREADED ON)
set( Boost_USE_STATIC_LIBS ON CACHE STRING "ON or OFF" )
# Most boost deps get implictly picked up via fc, as just about everything links to fc. In addition we pick up
# the pthread dependency through fc.
find_package(Boost 1.70 REQUIRED COMPONENTS program_options unit_test_framework system)
find_package(Boost 1.71 REQUIRED COMPONENTS program_options unit_test_framework system)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As far as I can tell, Boost 1.71 does not work with C++20 at least for clang++16. Does this need to be 1.74 at least?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

indeed, when we enable c++20 we're going to need to do.. something else.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, we'll have to change the boost minimum version when we enable c++20.
I personally would like us to use boost 1.82 always. Maybe add boost as a submodule (I talked with Areg about it already).
I think we would benefit to use a common version of boost regardless of how (pinned vs unpinned) or on what system leap is built on.

This would also allow us to use newer libraries such as boost::json.

@greg7mdp
Copy link
Contributor Author

greg7mdp commented May 2, 2023

this can be updated to 1.71 now

find_package(Boost 1.70 REQUIRED COMPONENTS program_options unit_test_framework system)

Should I update the find_package version for boost in submodules as well?

./libraries/appbase/CMakeLists.txt
find_package(Boost 1.67 REQUIRED COMPONENTS program_options)
./libraries/libfc/CMakeLists.txt
find_package(Boost 1.66 REQUIRED COMPONENTS
./libraries/cli11/cli11/tests/CMakeLists.txt
find_package(Boost 1.61 REQUIRED)
./libraries/chainbase/CMakeLists.txt
FIND_PACKAGE(Boost 1.67 REQUIRED COMPONENTS unit_test_framework)

@greg7mdp
Copy link
Contributor Author

greg7mdp commented May 2, 2023

@spoonincode are you OK with approving this PR now?

@spoonincode
Copy link
Member

I was going to finish running the tests before approving

@greg7mdp
Copy link
Contributor Author

greg7mdp commented May 2, 2023

I was going to finish running the tests before approving

Sounds good, thanks Matt!

@greg7mdp greg7mdp merged commit 174e8ff into main May 2, 2023
@greg7mdp greg7mdp deleted the update_pinned_build_dep_versions branch May 2, 2023 21:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Update pinned build versions for boost and llvm-src
5 participants