Skip to content

Commit 7410eb1

Browse files
committed
Merge remote-tracking branch 'origin/master' into merge-2.111
2 parents 115aa33 + 55710f3 commit 7410eb1

File tree

8 files changed

+66
-20
lines changed

8 files changed

+66
-20
lines changed

.github/actions/1-setup/action.yml

-10
Original file line numberDiff line numberDiff line change
@@ -37,16 +37,6 @@ runs:
3737
# Make sure to link libzstd statically
3838
sudo rm /usr/lib/$arch-linux-gnu/libzstd.so
3939
40-
# Install a more recent CMake version in the AArch64 container (for mimalloc...)
41-
if [[ $arch == aarch64 ]]; then
42-
curl -fL --retry 3 --max-time 300 -o cmake.tar.gz \
43-
https://github.com/Kitware/CMake/releases/download/v3.31.4/cmake-3.31.4-linux-$arch.tar.gz
44-
mkdir cmake
45-
tar -xf cmake.tar.gz --strip 1 -C cmake
46-
rm cmake.tar.gz
47-
sudo ln -sf $PWD/cmake/bin/cmake /usr/bin/cmake
48-
fi
49-
5040
- name: 'Linux: Install clang 19 from apt.llvm.org'
5141
if: runner.os == 'Linux'
5242
shell: bash

.github/actions/4b-test-lit/action.yml

-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ runs:
1515
if [[ '${{ runner.os }}-${{ inputs.arch }}' == Linux-aarch64 ]]; then
1616
# FIXME: the following tests fail
1717
rm tests/debuginfo/nested_gdb.d
18-
rm tests/debuginfo/print_gdb.d # works for Cirrus CI though
1918
rm tests/sanitizers/fuzz_basic.d
2019
fi
2120

.github/actions/4d-test-libs/action.yml

+4-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,10 @@ runs:
1919
fi
2020
2121
excludes="dmd-testsuite|lit-tests|ldc2-unittest"
22-
if [[ '${{ runner.os }}-${{ inputs.arch }}' == Linux-aarch64 ]]; then
22+
if [[ '${{ runner.os }}-${{ inputs.arch }}' == Linux-x86_64 ]]; then
23+
# sporadically hanging since Ubuntu 22
24+
excludes+='|^core.thread-shared_32$'
25+
elif [[ '${{ runner.os }}-${{ inputs.arch }}' == Linux-aarch64 ]]; then
2326
# FIXME: failing unittest(s)
2427
excludes+='|^std.internal.math.gammafunction'
2528
# FIXME: failing unittest(s) with enabled optimizations
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
name: Build gdb from source
2+
inputs:
3+
arch:
4+
required: true
5+
runs:
6+
using: composite
7+
steps:
8+
- name: Pre-create user-owned directory /usr/local/share/gdb, required for cache restore
9+
shell: bash
10+
run: |
11+
set -eux
12+
sudo mkdir /usr/local/share/gdb
13+
sudo chown $(id -u):$(id -g) /usr/local/share/gdb
14+
15+
- name: Try to restore from cache
16+
uses: actions/cache@v4
17+
with:
18+
path: |
19+
/usr/local/bin/gdb
20+
/usr/local/share/gdb
21+
key: gdb-${{ inputs.arch }}
22+
23+
- shell: bash
24+
run: |
25+
set -eux
26+
27+
if [[ -f /usr/local/bin/gdb ]]; then
28+
echo "Already cached"
29+
exit 0
30+
fi
31+
32+
sudo apt-get -yq install libmpfr-dev
33+
34+
cd ..
35+
curl -fL --retry 3 --max-time 60 -O https://mirrors.ocf.berkeley.edu/gnu/gdb/gdb-16.2.tar.xz
36+
tar xf gdb-16.2.tar.xz
37+
38+
cd gdb-16.2
39+
./configure
40+
make -j$(nproc)
41+
sudo make install
42+
cd ..
43+
44+
rm -rf gdb-16.2 gdb-16.2.tar.xz
45+
46+
- shell: bash
47+
run: gdb --version

.github/actions/merge-windows/action.yml

+1
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,7 @@ runs:
145145
shell: cmd
146146
run: |
147147
echo on
148+
choco install innosetup
148149
"C:\Program Files (x86)\Inno Setup 6\iscc" ^
149150
"/O%CD%\newArtifacts" ^
150151
"/DLDCVersion=%ARTIFACT_ID%" ^

.github/workflows/main.yml

+12-8
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ jobs:
2424
include:
2525

2626
- job_name: Linux x86_64 multilib
27-
os: ubuntu-20.04
27+
os: ubuntu-22.04
2828
arch: x86_64
2929
# To improve portability of the generated binaries, link the C++ standard library statically.
3030
extra_cmake_flags: >-
@@ -38,8 +38,7 @@ jobs:
3838
with_pgo: true
3939

4040
- job_name: Linux aarch64
41-
os: ubuntu-22.04-arm # Ubuntu 20 not natively supported
42-
container_image: ubuntu:20.04
41+
os: ubuntu-22.04-arm
4342
arch: aarch64
4443
base_cmake_flags: >-
4544
-DCOMPILER_RT_LIBDIR_OS=aarch64-unknown-linux-gnu
@@ -98,15 +97,15 @@ jobs:
9897
with_pgo: true
9998

10099
- job_name: Windows x64
101-
os: windows-2022
100+
os: windows-2025
102101
arch: x64
103102
extra_cmake_flags: >-
104103
"-DD_COMPILER_FLAGS=-O -flto=full -defaultlib=phobos2-ldc-lto,druntime-ldc-lto"
105104
-DEXTRA_CXXFLAGS=-flto=full
106105
with_pgo: true
107106

108107
- job_name: Windows x86
109-
os: windows-2022
108+
os: windows-2025
110109
arch: x86
111110
# `RT_CFLAGS=-m32` needed to make 64-bit clang-cl output 32-bit code for druntime integration tests
112111
extra_cmake_flags: >-
@@ -156,6 +155,11 @@ jobs:
156155
with:
157156
llvm_version: ${{ matrix.llvm_version || env.LLVM_VERSION }}
158157
arch: ${{ matrix.arch }}
158+
- name: 'Ubuntu 22: Build recent gdb from source' # see https://github.com/ldc-developers/ldc/issues/4389
159+
if: startsWith(matrix.os, 'ubuntu-22.04')
160+
uses: ./.github/actions/helper-build-gdb
161+
with:
162+
arch: ${{ matrix.arch }}
159163
- name: Build bootstrap LDC
160164
if: runner.os != 'macOS'
161165
uses: ./.github/actions/2-build-bootstrap
@@ -243,13 +247,13 @@ jobs:
243247
include:
244248

245249
- job_name: Android armv7a
246-
host_os: ubuntu-20.04
250+
host_os: ubuntu-22.04
247251
os: android
248252
arch: armv7a
249253
android_x86_arch: i686
250254

251255
- job_name: Android aarch64
252-
host_os: ubuntu-20.04
256+
host_os: ubuntu-22.04
253257
os: android
254258
arch: aarch64
255259
android_x86_arch: x86_64
@@ -314,7 +318,7 @@ jobs:
314318

315319
merge-windows:
316320
name: Windows multilib
317-
runs-on: windows-2022
321+
runs-on: windows-2025
318322
timeout-minutes: 30
319323
needs: build-native
320324
steps:

CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
#### Big news
44
- Frontend, druntime and Phobos are at version [2.111.0](https://dlang.org/changelog/2.111.0.html). (#4877)
55
- Keep frame pointers by default with `-O` for some targets, notably AArch64 (except Windows), x86_64 (except Windows and glibc Linux), Windows x86, and Android. This fixes druntime backtraces with optimized code (incl. prebuilt druntime/Phobos). (#4889)
6+
- The prebuilt (non-musl) Linux packages are now generated on Ubuntu 22.04; the minimum glibc version has accordingly been raised from v2.31 to v2.35. (#4893)
67
- ldc2.conf: Arrays can now be appended to via the `~=` operator. (#4848, #4856)
78
- New `--installWithSuffix` command-line option for the `ldc-build-runtime` tool, to simplify copying the libraries to an existing LDC installation. (#4870)
89

tools/update-dmd-rewrite.sh

+1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ cd "$temp_dir"
2626
cat > message-filters.txt <<'EOF'
2727
regex:(^|\s|\()#(\d{2,})==>\1dlang/dmd!\2
2828
(cherry picked from commit 88d1e8fc37428b873f59d87f8dff1f40fbd3e7a3)==>(cherry picked from commit 8b9b481a322bdcbfdad38ba4ad74182742aef118)
29+
This reverts commit fa1f860e4be6a0d796a47329be110be14fc1d667==>This reverts commit 601bef533244166f1f114d424e6d3b3f8119d697
2930
EOF
3031

3132
# clone DMD monorepo

0 commit comments

Comments
 (0)