Skip to content

Commit c9122cd

Browse files
committed
[overcome problem of fully static executables not working with std.net.curl]
Incl. the Phobos test runner, and dub.
1 parent 8165790 commit c9122cd

File tree

4 files changed

+11
-13
lines changed

4 files changed

+11
-13
lines changed

.github/actions/7-package/action.yml

+5-7
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,6 @@ runs:
2424
fi
2525
echo "DMD=$DMD" >> $GITHUB_ENV
2626
27-
- name: 'Alpine: Set DFLAGS environment variable (-Xcc=-static)' # for fully statically linked dub etc.
28-
if: inputs.os == 'alpine'
29-
shell: bash
30-
run: |
31-
set -eux
32-
echo "DFLAGS=-Xcc=-static${DFLAGS:+ $DFLAGS}" >> $GITHUB_ENV
33-
3427
- name: Build & copy dub
3528
shell: bash
3629
run: |
@@ -56,6 +49,11 @@ runs:
5649
cd dlang-tools
5750
git checkout "$(cat ../ldc/packaging/dlang-tools_version)"
5851
52+
# Alpine: build these tools as fully static executables
53+
if [[ '${{ inputs.os }}' == 'alpine' ]]; then
54+
export DFLAGS="-Xcc=-static${DFLAGS:+ $DFLAGS}"
55+
fi
56+
5957
mkdir bin
6058
$DMD -w -de -dip1000 rdmd.d -of=bin/rdmd
6159
$DMD -w -de -dip1000 ddemangle.d -of=bin/ddemangle

.github/workflows/main.yml

+3-3
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ jobs:
2929
-DBUILD_LTO_LIBS=ON
3030
-DCMAKE_C_COMPILER=clang
3131
-DCMAKE_CXX_COMPILER=clang++
32-
-DCMAKE_EXE_LINKER_FLAGS=-static-libstdc++
32+
-DD_LINKER_ARGS=-static-libstdc++
3333
-DJITRT_EXTRA_LDFLAGS=-static-libstdc++
3434
-DD_COMPILER_FLAGS="-O -flto=full -defaultlib=phobos2-ldc-lto,druntime-ldc-lto"
3535
-DEXTRA_CXXFLAGS=-flto=full
@@ -47,7 +47,7 @@ jobs:
4747
-DCOMPILER_RT_LIBDIR_OS=aarch64-unknown-linux-gnu
4848
-DCMAKE_C_COMPILER=clang
4949
-DCMAKE_CXX_COMPILER=clang++
50-
-DCMAKE_EXE_LINKER_FLAGS=-static-libstdc++
50+
-DD_LINKER_ARGS=-static-libstdc++
5151
-DJITRT_EXTRA_LDFLAGS=-static-libstdc++
5252
-DD_COMPILER_FLAGS="-O -flto=full -defaultlib=phobos2-ldc-lto,druntime-ldc-lto"
5353
-DEXTRA_CXXFLAGS=-flto=full
@@ -69,7 +69,7 @@ jobs:
6969
-DCOMPILER_RT_LIBDIR_OS=linux
7070
-DLDC_INSTALL_LLVM_RUNTIME_LIBS_ARCH=x86_64
7171
-DTEST_COMPILER_RT_LIBRARIES="profile;lsan;asan;msan;fuzzer"
72-
-DCMAKE_EXE_LINKER_FLAGS=-static
72+
-DD_LINKER_ARGS=-static
7373
-DD_COMPILER_FLAGS="-O -flto=full"
7474
# FIXME: -defaultlib=phobos2-ldc-lto,druntime-ldc-lto
7575
with_pgo: false

.github/workflows/supported_llvm_versions.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,12 @@ jobs:
2424
os: macos-14
2525
host_dc: ldc-beta
2626
llvm_version: 17.0.5
27-
cmake_flags: -DBUILD_SHARED_LIBS=ON -DRT_SUPPORT_SANITIZERS=ON -DCMAKE_EXE_LINKER_FLAGS=-L/opt/homebrew/opt/zstd/lib -DCMAKE_C_COMPILER=/usr/bin/cc -DCMAKE_CXX_COMPILER=/usr/bin/c++
27+
cmake_flags: -DBUILD_SHARED_LIBS=ON -DRT_SUPPORT_SANITIZERS=ON -DD_LINKER_ARGS=-L/opt/homebrew/opt/zstd/lib -DCMAKE_C_COMPILER=/usr/bin/cc -DCMAKE_CXX_COMPILER=/usr/bin/c++
2828
- job_name: macOS 14, LLVM 16, latest LDC beta
2929
os: macos-14
3030
host_dc: ldc-beta
3131
llvm_version: 16.0.5
32-
cmake_flags: -DBUILD_SHARED_LIBS=OFF -DCMAKE_EXE_LINKER_FLAGS=-L/opt/homebrew/opt/zstd/lib -DCMAKE_C_COMPILER=/usr/bin/cc -DCMAKE_CXX_COMPILER=/usr/bin/c++
32+
cmake_flags: -DBUILD_SHARED_LIBS=OFF -DD_LINKER_ARGS=-L/opt/homebrew/opt/zstd/lib -DCMAKE_C_COMPILER=/usr/bin/cc -DCMAKE_CXX_COMPILER=/usr/bin/c++
3333
- job_name: Ubuntu 24.04, LLVM 15, latest DMD beta
3434
os: ubuntu-24.04
3535
host_dc: dmd-beta

cmake/Modules/BuildDExecutable.cmake

+1-1
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ function(build_d_executable target_name output_exe d_src_files compiler_args lin
9595
list(APPEND dep_libs "-L$<TARGET_LINKER_FILE:${l}>")
9696
endforeach()
9797

98-
set(full_linker_args ${CMAKE_EXE_LINKER_FLAGS} ${linker_args})
98+
set(full_linker_args ${CMAKE_EXE_LINKER_FLAGS} ${linker_args} ${D_LINKER_ARGS})
9999
translate_linker_args(full_linker_args translated_linker_args)
100100

101101
# We need to link against the C++ runtime library.

0 commit comments

Comments
 (0)