Hi all!
I've recently began using dagger for describing our CI workflows and so far am really pleased.
A small thing though drives me nuts as I just can't understand why there should be anything different.
I'm using dagger currently to cross-compile a C++ Meson project on an AMD64 machine by using a docker image with the linux/arm64 platform.
The whole command can be summarized as:
get-build-kit-container --platform linux/arm64 \
| with-directory /src . \
| with-workdir /src \
| with-exec meson,setup,build,--default-library=shared \
| with-exec meson,compile,-C,build
where get-build-kit-container just returns the container with all required dependencies.
The whole build works just fine when using the linux/amd64 platform instead.
When using the linux/arm64 platform though it depends:
- In the form above, it fails on build with multiple segfaults like
c++: internal compiler error: Segmentation fault signal terminated program cc1plus - but when I replace the
with-exec meson,compile,-C,buildwith aterminaland run the exact samemeson compile -C buildcommand it builds successfully every single time!