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

Workaround for misalignment of SubmapSlice and Eigen data structures in heterogeneous builds #1910

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Commits on Nov 11, 2022

  1. Workaround for misalignment in heterogeneous builds

    	- Added a workaround for misaligned SubmapSlice
    	  structure between cartographer and cartographer_ros
    	  built using different compilers or compile contexts
    	- Rearranged SubmapSlice field order after static
    	  analysis performed with clangd
    	- Added commented non-portable workaround with
    	  \#pragma pack
    	- Closes cartographer-project#1909
    
    Signed-off-by: Andrey Vukolov <[email protected]>
    twdragon committed Nov 11, 2022
    Configuration menu
    Copy the full SHA
    a1b6a27 View commit details
    Browse the repository at this point in the history

Commits on Nov 14, 2022

  1. Adoption for C++17 standard + Eigen workaround

    	- Adopted C++17 standard, removed CXX standard requirement
    	- Removed Abseil's absl::unique_ptr in favour of std::unique_ptr
    	  producing errors when built on Ubuntu 22 with fresh Abseil built
    	  from source
    	- Added DISABLE_AVX_ALIGNMENT CMake option to prevent Eigen
    	  (especially built from source) from misalignment of the data
    	  structures passed outside the library namespace on the machines
    	  with modern CPUs providing AVX vectorization out of the box
    	- Tested on Intel Core-i7 6700, any performance decreaseing was
    	  not discovered
    
    Signed-off-by: Andrey Vukolov <[email protected]>
    twdragon committed Nov 14, 2022
    Configuration menu
    Copy the full SHA
    0c62d34 View commit details
    Browse the repository at this point in the history