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

Everest-core Compilation Failure with EvseManager.hpp #660

Open
qtivijay opened this issue Apr 30, 2024 · 3 comments
Open

Everest-core Compilation Failure with EvseManager.hpp #660

qtivijay opened this issue Apr 30, 2024 · 3 comments

Comments

@qtivijay
Copy link

Describe the bug

Trying to compile Everest-core using below steps
cd {EVerest Workspace Directory}/everest-core
mkdir build
cd build
cmake ..
make install

make install is failing with below error

Error :
76%] Building CXX object modules/CMakeFiles/EvseManager.dir/EvseManager/EvseManager.cpp.o
In file included from /home/gvijay/everest-dev-environment/everest-core/modules/EvseManager/EvseManager.cpp:3:
/home/gvijay/everest-dev-environment/everest-core/modules/EvseManager/EvseManager.hpp: In constructor ‘module::EvseManager::EvseManager(const ModuleInfo&, Everest::MqttProvider&, Everest::TelemetryProvider&, std::unique_ptr<evse_managerImplBase>, std::unique_ptr, std::unique_ptr<auth_token_providerImplBase>, std::unique_ptr<uk_random_delayImplBase>, std::unique_ptr<evse_board_supportIntf>, std::vector<std::unique_ptr<ac_rcdIntf> >, std::vector<std::unique_ptr<connector_lockIntf> >, std::vector<std::unique_ptr >, std::vector<std::unique_ptr >, std::vector<std::unique_ptr >, std::vector<std::unique_ptr<ISO15118_chargerIntf> >, std::vector<std::unique_ptr<isolation_monitorIntf> >, std::vector<std::unique_ptr<power_supply_DCIntf> >, module::Conf&)’:
/home/gvijay/everest-dev-environment/everest-core/modules/EvseManager/EvseManager.hpp:126:22: error: use of deleted function ‘constexpr std::atomic<_Tp>::atomic() [with _Tp = std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long int, std::ratio<1, 1000000000> > >]’
126 | config(config){};

| ^
In file included from /usr/include/c++/9/future:42,
from /home/gvijay/everest-dev-environment/everest-framework/include/framework/everest.hpp:7,
from /home/gvijay/everest-dev-environment/everest-framework/include/framework/ModuleAdapter.hpp:6,
from /home/gvijay/everest-dev-environment/everest-core/build/generated/modules/EvseManager/ld-ev.hpp:11,
from /home/gvijay/everest-dev-environment/everest-core/modules/EvseManager/EvseManager.hpp:11,
from /home/gvijay/everest-dev-environment/everest-core/modules/EvseManager/EvseManager.cpp:3:
/usr/include/c++/9/atomic:198:7: note: ‘constexpr std::atomic<_Tp>::atomic() noexcept [with _Tp = std::chrono::time_point<std::chrono::_V2::steady_clock, std::chrono::duration<long int, std::ratio<1, 1000000000> > >]’ is implicitly deleted because its exception-specification does not match the implicit exception-specification ‘’
198 | atomic() noexcept = default;
| ^~~~~~
make[2]: *** [modules/CMakeFiles/EvseManager.dir/build.make:70: modules/CMakeFiles/EvseManager.dir/EvseManager/EvseManager.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:5116: modules/CMakeFiles/EvseManager.dir/all] Error 2
make: *** [Makefile:152: all] Error 2

EVerest Domain

Other

Affected EVerest Module

everest-core

To Reproduce

No response

Anything else?

No response

@qtivijay qtivijay changed the title Compilation failure with Everest-core Compilation Failure with EvseManager.hpp May 1, 2024
@hikinggrass
Copy link
Contributor

Which compiler (and version) are you using?

@qtivijay
Copy link
Author

qtivijay commented May 8, 2024

Which compiler (and version) are you using?
CMAKE_CXX_COMPILER '/usr/bin/c++' 'GNU' '9.4.0'

@barsnick
Copy link
Contributor

It's probably the issue described here:
https://stackoverflow.com/questions/64393225/why-cant-a-stdatomic-of-a-stdchrono-time-point-member-variable-be-default-c
with g++-8 and g++-9 - presumably a bug in the compiler or libstdc++.

According to that, this variable needs to be initialized:

std::atomic<std::chrono::time_point<std::chrono::steady_clock>> timepoint_ready_for_charging;

(Untested.)

Can we clone the CI to also compile with Ubuntu 20? The docs do say "Tested with Ubuntu 20.04 and 22.04.".

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

No branches or pull requests

3 participants