Skip to content

Commit 6399ec9

Browse files
authored
GH-47015: [CI][C++] Use mold on conda-cpp to work around issues with GNU ld (#47028)
### Rationale for this change A particular combination of `gcc`, GNU `ld` and specific compiler flags leads to crashes when calling `std::call_once` in some compilation units: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60662 The problem disappears when using another linker such `ld.gold` (which has been removed from GNU binutils) and `mold`. ### What changes are included in this PR? Use `mold` on conda-based C++ builds. ### Are these changes tested? By existing CI jobs. ### Are there any user-facing changes? No. * GitHub Issue: #47015 Authored-by: Antoine Pitrou <[email protected]> Signed-off-by: Sutou Kouhei <[email protected]>
1 parent b712c1e commit 6399ec9

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

ci/docker/conda-cpp.dockerfile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ RUN /arrow/ci/scripts/install_minio.sh latest /opt/conda
2727
ARG python=3.10
2828

2929
# install the required conda packages into the test environment
30+
# use `mold` to work around issues with GNU `ld` (GH-47015).
3031
COPY ci/conda_env_cpp.txt \
3132
ci/conda_env_gandiva.txt \
3233
/arrow/ci/
@@ -36,6 +37,7 @@ RUN mamba install -q -y \
3637
compilers \
3738
doxygen \
3839
libnuma \
40+
mold \
3941
python=${python} \
4042
valgrind && \
4143
mamba clean --all --yes
@@ -73,6 +75,7 @@ ENV ARROW_ACERO=ON \
7375
ARROW_S3_MODULE=ON \
7476
ARROW_SUBSTRAIT=ON \
7577
ARROW_USE_CCACHE=ON \
78+
ARROW_USE_MOLD=ON \
7679
ARROW_WITH_BROTLI=ON \
7780
ARROW_WITH_BZ2=ON \
7881
ARROW_WITH_LZ4=ON \

0 commit comments

Comments
 (0)