Building on ubuntu-24.04-arm
fyi, I tried to build master on ubuntu-24.04-arm (by a Github action) using Conda and our conda-forge/hpx-feedstock setup. It failed with the one below, which I could solve by adding -D HPX_WITH_GENERIC_CONTEXT_COROUTINES=On to CMake and then the build succeeds :)
I get the impression that setting this option should not be required but detected and added automatically (?), so I just share my experiences
...s/hpx_coroutines.dir/src/detail/context_base.cpp.o.d -o libs/core/coroutines/CMakeFiles/hpx_coroutines.dir/src/detail/context_base.cpp.o -c $SRC_DIR/libs/core/coroutines/src/detail/context_base.cpp
│ │ In file included from $SRC_DIR/libs/core/coroutines/include/hpx/coroutines/detail/context_impl.hpp:126,
│ │ from $SRC_DIR/libs/core/coroutines/include/hpx/coroutines/detail/context_base.hpp:36,
│ │ from $SRC_DIR/libs/core/coroutines/src/detail/context_base.cpp:12:
│ │ $SRC_DIR/libs/core/coroutines/include/hpx/coroutines/detail/context_linux_x86.hpp: In member function 'void hpx::threads::coroutines::detail::lx::x86_linux_context_impl_base::prefetch() const':
│ │ $SRC_DIR/libs/core/coroutines/include/hpx/coroutines/detail/context_linux_x86.hpp:206:41: error: static assertion failed
│ │ 206 | static_assert(sizeof(void*) == 4);
│ │ | ~~~~~~~~~~~~~~^~~~
│ │ $SRC_DIR/libs/core/coroutines/include/hpx/coroutines/detail/context_linux_x86.hpp:206:41: note: the comparison reduces to '(8 == 4)'
│ │ ninja: build stopped: subcommand failed.
│ │ × error Script failed with status 1
@OliverSchmitz thanks for reporting this. I believe that for ARM, HPX needs to be built using the -DHPX_WITH_GENERIC_CONTEXT_COROUTINES=On CMake configuration option. I'm not sure if the Conda package was built that way.
@kordejong: could you verify, please?
No, the HPX Conda package currently has no Linux ARM build. That's why I wanted to check the upcoming 1.11 release to see if there are any big issues in case we want/need to add the aarch64 platform for the Conda package as well Adding that option to the conda-feedstock build script wouldn't be a huge problem. It's just that I saw https://github.com/STEllAR-GROUP/hpx/blob/master/CMakeLists.txt#L1765 making me think about autodetection... if it helps I see this in the CMake configure
2025-06-24T18:45:04.6082567Z │ │ -- Performing Test WITH_LINKER_FLAG_FVISIBILITY_HIDDEN - Success
2025-06-24T18:45:04.6083925Z │ │ -- Architecture detected: arm
2025-06-24T18:45:04.6084193Z │ │ -- Cacheline size detected: 256
so just arm and not arm64 as detected architecture...