Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 12 additions & 10 deletions .github/actions/1-setup/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -162,19 +162,21 @@ runs:
run: |
set -eux
cd ..
curl -fL --retry 3 --max-time 60 -o libcurl.7z \
https://github.com/ldc-developers/mingw-w64-libs/releases/download/v8.0.0/libcurl-7.74.0-zlib-static-ipv6-sspi-schannel.7z

url='https://curl.se/windows/latest.cgi?p=win64-mingw.zip'
if [[ '${{ inputs.arch }}' == x86 ]]; then
url='https://curl.se/windows/latest.cgi?p=win32-mingw.zip'
fi

curl -fL --retry 3 --max-time 60 -o libcurl.zip "$url"
mkdir libcurl
cd libcurl
7z x ../libcurl.7z >/dev/null
rm ../libcurl.7z
7z x ../libcurl.zip >/dev/null
rm ../libcurl.zip
mkdir ldc2
if [[ '${{ inputs.arch }}' == x64 ]]; then
cp dmd2/windows/bin64/libcurl.dll ldc2/
cp dmd2/windows/lib64/*.* ldc2/
else
cp dmd2/windows/bin/libcurl.dll ldc2/
cp dmd2/windows/lib32mscoff/*.* ldc2/
cp curl-*/bin/{libcurl*.dll,curl-ca-bundle.crt} ldc2/
if [[ '${{ inputs.arch }}' != x86 ]]; then
mv ldc2/libcurl*.dll ldc2/libcurl.dll
fi
ls -lh ldc2/

Expand Down
3 changes: 1 addition & 2 deletions .github/actions/5-install/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,7 @@ runs:
set -eux
cd ..

cp libcurl/ldc2/libcurl.dll installed/bin/
cp libcurl/ldc2/*.* installed/lib/
cp libcurl/ldc2/* installed/bin/

curl -fL --retry 3 --max-time 60 -o mingw-w64-libs.7z \
https://github.com/ldc-developers/mingw-w64-libs/releases/download/v8.0.0/mingw-w64-libs-v8.0.0.7z
Expand Down
13 changes: 12 additions & 1 deletion .github/actions/merge-windows/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ runs:
cd ldc2-multilib
mv lib lib64
cp -R ../ldc2-x86/lib lib32
cp ../ldc2-x86/bin/*.{dll,pdb} lib32/
cp ../ldc2-x86/bin/{*.dll,*.pdb,curl-ca-bundle.crt} lib32/
- name: Merge ldc2.conf
shell: pwsh
run: |
Expand Down Expand Up @@ -105,6 +105,17 @@ runs:
echo on
ldc2-multilib\bin\ldc2 -mtriple=aarch64-windows-msvc hello.d || exit /b
ldc2-multilib\bin\ldc2 -mtriple=aarch64-windows-msvc -link-defaultlib-shared hello.d || exit /b
- name: Add arm64 libcurl
shell: bash
run: |
set -eux
url='https://curl.se/windows/latest.cgi?p=win64a-mingw.zip'
curl -fL --retry 3 --max-time 60 -o libcurl.zip "$url"
7z x libcurl.zip >/dev/null
rm libcurl.zip
cp curl-*/bin/{libcurl*.dll,curl-ca-bundle.crt} ldc2-multilib/libarm64/
rm -rf curl-*
mv ldc2-multilib/libarm64/libcurl*.dll ldc2-multilib/libarm64/libcurl.dll

- name: Pack multilib package
shell: bash
Expand Down
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,12 @@
- New prebuilt package for Alpine Linux x86_64 with musl libc. It's currently generated on Alpine v3.20, using its default LLVM 17. Most bundled executables are fully static and can be run on ~all distros. (#4826)
- Revived dynamic-compile (JIT) functionality (formerly unsupported since LLVM 12), supporting LLVM 18+ now. (#4774)
- ldc2.conf: `%%ldcversion%%` placeholder added, allowing to refer to version-specific directories.
- Windows: The prebuilt packages now bundle an official libcurl build (from https://curl.se/windows/), currently v8.12.1. The static library (`curl_a.lib`) isn't available anymore. (#4855)

#### Platform support
- Supports LLVM 15 - 19.
- Initial compiler and runtime support for ppc64 and ppc64le systems that use IEEE 754R 128-bit floating-point as the default 128-bit floating-point format. (#4833)
- Initial support for Windows on ARM64. The prebuilt Windows multilib package/installer bundles prebuilt arm64 druntime and Phobos; cross-compiling works out of the box via `-mtriple=aarch64-windows-msvc`, but you currently need to set up a suited MSVC arm64 build environment before yourself (e.g., by running `vsdevcmd.bat -arch=arm64 -host_arch=x64`). There's no bundled libcurl either yet. (#4835, #4846)
- Initial support for Windows on ARM64. The prebuilt Windows multilib package/installer bundles prebuilt arm64 druntime and Phobos; cross-compiling works out of the box via `-mtriple=aarch64-windows-msvc`, but you currently need to set up a suited MSVC arm64 build environment before yourself (e.g., by running `vsdevcmd.bat -arch=arm64 -host_arch=x64`). (#4835, #4846)

#### Bug fixes
- Building multi-file D applications with control-flow protection will no longer cause LDC to throw an internal compiler error. (#4828)
Expand Down
Loading