Compiling sixtracklib on Mac OS X 10.15 Catalina using gcc/g++ 10.2, some types appear to be inconsistent.
Specifically, the sixtracklib/common/internal/track_job_base.cpp ends up with the TrackJob's size_type being unsigned long while in the header sixtracklib/common/internal/track_job_base.h, the size_type is an alias for unsigned long long
This results in error messages like the following:
[ 52%] Building CXX object sixtracklib/common/internal/CMakeFiles/sixtrack_common_internal_cxx.dir/track_job_base.cpp.o
/Users/user926596/git/sixtracklib/sixtracklib/common/internal/track_job_base.cpp:59:25: error: conflicting declaration 'constexpr const st_size_t sixtrack::TrackJobBase::ILLEGAL_BUFFER_ID'
59 | constexpr st_size_t tjob_t::ILLEGAL_BUFFER_ID;
| ^~~~~~
In file included from /Users/user926596/git/sixtracklib/sixtracklib/common/internal/track_job_base.cpp:1:
/Users/user926596/git/sixtracklib/sixtracklib/common/internal/track_job_base.h:67:36: note: previous declaration as 'constexpr const size_type sixtrack::TrackJobBase::ILLEGAL_BUFFER_ID'
67 | static constexpr size_type ILLEGAL_BUFFER_ID =
TODO:
Analyse why this issue has only affected Mac OS X builds so far (same compiler for Linux seems to work fine)
Fix the issue
Verify that this issue is not also causing troubles elsewhere
Compiling
sixtracklib
on Mac OS X 10.15 Catalina using gcc/g++ 10.2, some types appear to be inconsistent. Specifically, thesixtracklib/common/internal/track_job_base.cpp
ends up with the TrackJob's size_type beingunsigned long
while in the headersixtracklib/common/internal/track_job_base.h
, the size_type is an alias forunsigned long long
This results in error messages like the following:
TODO:
Thanks to @fsoubelet for reporting this issue!