Skip to content

Ensure proper setting for BOOST_NO_CXX98_FUNCTION_BASE control when building ecflow with C++17#370

Merged
climbfuji merged 4 commits intoJCSDA:jcsda_emc_spack_stackfrom
srherbener:bugfix/ecflow-boost-cxx17
Nov 17, 2023
Merged

Ensure proper setting for BOOST_NO_CXX98_FUNCTION_BASE control when building ecflow with C++17#370
climbfuji merged 4 commits intoJCSDA:jcsda_emc_spack_stackfrom
srherbener:bugfix/ecflow-boost-cxx17

Conversation

@srherbener
Copy link
Copy Markdown

@srherbener srherbener commented Nov 17, 2023

Description

This PR properly defines BOOST_NO_CXX98_FUNCTION_BASE when building ecflow with the C++17 standard. The ecflow CMake configuration has been setting the C++17 standard since version 5.8.3 (ie, using the -std=gnu++17 compiler option). When using C++17, the boost executor.hpp include file needs to have BOOST_NO_CXX98_FUNCTION_BASE defined to build successfully.

I have a PR in the authoritative spack repo (spack#41120) with corresponding updates. The changes in this PR were made by cherry picking the commits from spack#41120.

I've tested these changes on my Mac and verified that building ecflow (5.11.4) works when using apple-clang@15.0.0 compilers.

Issue(s) addressed

Partially resolves JCSDA/spack-stack/issues/877

Dependencies

List the other PRs that this PR is dependent on:
None

Impact

Expected impact on downstream repositories:
None

Checklist

  • I have performed a self-review of my own code
  • I have made corresponding changes to the documentation (N/A)
  • I have run the unit tests before creating the PR

… variant that is

needed to set BOOST_NO_CXX98_FUNCTION_BASE appropriately when building with C++17 standard.
…dy specifying

to use the c++17 standard for newer versions. The use of the BOOST_NO_CXX98_FUNCTION_BASE
define is now triggered by the ecflow version.
Copy link
Copy Markdown
Collaborator

@climbfuji climbfuji left a comment

Choose a reason for hiding this comment

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

Thanks, happy with the changes. Don't see why the spack PR wouldn't go through as it is now. @AlexanderRichert-NOAA can you please review both the spack mainline PR and this one?

@srherbener srherbener added the INFRA JEDI Infrastructure label Nov 17, 2023
@climbfuji climbfuji self-assigned this Nov 17, 2023
@climbfuji climbfuji merged commit 42fbcfb into JCSDA:jcsda_emc_spack_stack Nov 17, 2023
@climbfuji climbfuji deleted the bugfix/ecflow-boost-cxx17 branch November 17, 2023 21:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

INFRA JEDI Infrastructure

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Need a c++17 language standard setting for ecflow for building on macOS with apple-clang@15.0.0

3 participants