Commit Graph
1452 Commits
Author SHA1 Message Date
Martin Storsjö e08a31fbfe github: Update to building and testing ffmpeg 9.0.2 instead of 6.1.2
This also avoids the problem with building on Ubuntu 26.04 if
building docs isn't disabled. (We're not interested in building
the docs here anyway, so keep it disabled in any case.)
2026-10-20 18:23:13 +03:00
Martin Storsjö 09c763a2cb github: Disable building docs in ffmpeg
This avoids failing if building in an environment where texinfo
exists, but is a newer version. (Support for texinfo 7.1 and 7.2
was added in ffmpeg 8.0.)

Ubuntu 26.04 contains a version of texinfo that fails to build
the docs in ffmpeg 6.0.2. The "ubuntu-latest" runners on Github
Actions are now running on Ubuntu 26.04.
2026-10-20 18:22:32 +03:00
Martin Storsjö d1c13b90f3 build-llvm: Bump to LLVM 23.1.4 2026-10-20 18:11:45 +03:00
Martin Storsjö 418e5b1207 build-mingw-w64: Bump to the latest version as of Oct 20th 2026-10-20 18:11:28 +03:00
Martin Storsjö 62e3bc63ef github: Use 7z instead of Expand-Archive
7z is included in the list of officially supported/included
applications on the Github Actions Windows images, so we can
rely on it.

This can be significantly faster than the Expand-Archive command,
see e.g. https://github.com/PowerShell/PowerShell/issues/3355.
2026-10-09 15:24:41 +03:00
Martin Storsjö 247e65cdeb github: Switch test-ffmpeg over to the msys2 environment ucrt64
The mingw64 environment is deprecated, which the setup-msys2 action
warns about.

We don't really use the host environment's tools anyway so the
choice doesn't matter. Ideally we maybe would use the msys
environment instead, to avoid accidentally relying on build tools
from there. But if building in the msys environment, ffmpeg things
we're building for msys as opposed to native mingw. (This can
probably be avoided by specifying --target-os though.)
2026-10-07 12:19:21 +03:00
Martin Storsjö e1878a59f8 build-llvm: Bump to LLVM 23.1.3 2026-10-06 19:19:17 +03:00
Martin Storsjö 4402ebefa6 build-mingw-w64: Bump to the latest version as of Oct 6th 2026-10-06 19:19:07 +03:00
Martin Storsjö 057602f297 github: Update dawidd6/action-download-artifact to v27
This should avoid issues where the action spuriously fetches older
runs than expected.
2026-09-30 14:16:03 +03:00
Martin Storsjö 22f751492c github: Try to work around msys rsync issues by attempting rsync twice
This tries to work around
https://github.com/msys2/MSYS2-packages/issues/6555.
2026-09-28 13:19:33 +03:00
Martin Storsjö 0eca5ac93d build-llvm: Bump to LLVM 23.1.2 2026-09-22 12:31:01 +03:00
Martin Storsjö f03b9610e0 build-mingw-w64: Bump to the latest version as of Sep 22nd 2026-09-22 12:30:44 +03:00
Martin Storsjö 030097eeee build-llvm: Bump to LLVM 23.1.1 2026-09-08 14:49:19 +03:00
Martin Storsjö 24c2a9c539 build-mingw-w64: Bump to the latest version as of Sep 8th 2026-09-08 14:48:58 +03:00
Martin Storsjö de1d2a5192 github: Stop disabling LLVM_WINDOWS_PREFER_FORWARD_SLASH in test-llvm
Since LLVM 23, the testcases should pass with
LLVM_WINDOWS_PREFER_FORWARD_SLASH enabled. For mingw build
configurations, this is enabled by default.
2026-08-27 11:54:53 +03:00
Martin Storsjö 48f50b100b test: Ignore failures to remove the output file in some cases
When running tests on Windows with busybox-w32 as shell, removing
the output log file for the stacksmash-asan testcase fails like this
occasionally:

    rm: can't remove 'log1-stacksmash-asan': Permission denied

This only seems to happen with the i686 build of busybox-w32, but
happens for the stacksmash-asan test built as either i686 or x86_64.

(If running run-test.sh repeatedly, it seems like the issue either
happens right away on the first iteration, or doesn't happen at all.)

Avoid breaking builds by simply making it ignore errors from this
particular "rm" command.
2026-08-27 11:54:24 +03:00
Martin Storsjö 14614551fb build-llvm: Bump to LLVM 23.1.0 final 2026-08-26 12:57:39 +03:00
Martin Storsjö 0e35436e9e build-mingw-w64: Bump to the latest version as of Aug 26th 2026-08-26 12:57:13 +03:00
Martin Storsjö 8d8653d73c docker: Fix line continuation after 986847858c 2026-08-12 20:17:19 +03:00
Martin Storsjö 26a7ab6ff0 github: Drop -static-libstdc++ -static-libgcc from the openmp tests
With arm64ec now being built as arm64x, sharing DLLs with the
regular aarch64 target, we no longer need these options - the
regular libc++.dll/libunwind.dll from $PATH (from the toolchain
bin directory) work for the arm64ec build as well.
2026-08-12 12:18:45 +03:00
Jacek Caban 986847858c Add ARM64X support
Extend the aarch64-w64-mingw32 prefix to provide ARM64EC libraries
alongside standard AArch64 libraries, replacing the separate
arm64ec-w64-mingw32 prefix. This aligns with how MSVC distributes
ARM64EC libraries and enables the linker to process both targets
simultaneously into a single hybrid binary.

This extensively utilizes LLVM's -marm64x option, compiling both
targets in a single compiler invocation to produce hybrid object
files (unlike MSVC tools, which require separate compilation passes).
2026-08-12 12:18:44 +03:00
Martin Storsjö eae760ec88 build-llvm: Bump to LLVM 23.1.0 RC 3 2026-08-12 12:18:17 +03:00
Martin Storsjö 78fe776c0c build-mingw-w64: Bump to the latest version as of Aug 12th 2026-08-12 12:18:01 +03:00
Martin Storsjö d5f44860c5 github: Allow triggering a pipeline equal to the scheduled nightly ones 2026-08-03 10:06:07 +03:00
Martin Storsjö 34f111adcb github: Upgrade the docker actions to the latest version
This avoids warnings about the actions targeting Node 20.

There is no easily available documentation about whether there are
any other API changes in the newer versions of these actions - in
particular the bump of build-push-action which advances by two
versions.
2026-08-03 10:05:30 +03:00
Martin Storsjö 327d1a081c build-llvm: Bump to LLVM 23.1.0 RC 2
This version includes a fix for linking directly against an ARM64X
DLL.
2026-07-28 18:50:47 +03:00
Martin Storsjö ce6e1683f7 build-mingw-w64: Bump to the latest version as of Jul 27th
This version is the one used in the latest successful nightly
build.
2026-07-28 18:49:20 +03:00
Martin Storsjö ef0fadb5b5 Revert "run-tests: Temporarily compile all executables before running them"
This reverts commit 5e3f73a650.

As the arm64x support has been reverted, this isn't needed. And
after bumping to LLVM 23.1.0 RC 2, we won't need it anyway.
2026-07-28 18:45:52 +03:00
Martin Storsjö 975930b5b7 Revert "Add ARM64X support"
This reverts commit 64effa9a71.

It turns out that the LLD handling of the TLS data structures
("_tls_used" and "_tls_index") needs more work, causing the
arm64ec side of arm64x binaries to not get them hooked up properly.
2026-07-28 18:44:59 +03:00
Martin Storsjö c77d93ace9 Revert "github: Drop -static-libstdc++ -static-libgcc from the openmp tests"
This reverts commit d6fbc4a7eb.

I'm going to revert the arm64x support, so this needs to be reverted
for now.
2026-07-28 18:44:40 +03:00
Martin Storsjö d6fbc4a7eb github: Drop -static-libstdc++ -static-libgcc from the openmp tests
With arm64ec now being built as arm64x, sharing DLLs with the
regular aarch64 target, we no longer need these options - the
regular libc++.dll/libunwind.dll from $PATH (from the toolchain
bin directory) work for the arm64ec build as well.
2026-07-28 10:42:39 +03:00
Jacek Caban 64effa9a71 Add ARM64X support
Extend the aarch64-w64-mingw32 prefix to provide ARM64EC libraries
alongside standard AArch64 libraries, replacing the separate
arm64ec-w64-mingw32 prefix. This aligns with how MSVC distributes
ARM64EC libraries and enables the linker to process both targets
simultaneously into a single hybrid binary.

This extensively utilizes LLVM's -marm64x option, compiling both
targets in a single compiler invocation to produce hybrid object
files (unlike MSVC tools, which require separate compilation passes).
2026-07-27 19:08:32 +02:00
Martin Storsjö 5e3f73a650 run-tests: Temporarily compile all executables before running them
When building throwcatch-main.exe, we link with "-L.". Since we
copy in the runtime libraries for executing tests, we might have
libc++.dll present if we aim for the target "test" while
compiling.

For arm64x builds, we could end up trying to link directly against
the arm64x libc++.dll rather than with the import library. Linking
directly against an arm64x DLL doesn't work yet in 23.1.0-rc1, so
avoid hitting this situation for now.

This is a temporary workaround; linking against an arm64x DLL should
work too, and the fix is being backported to the next RC.
2026-07-27 19:08:32 +02:00
Martin Storsjö 3f54c5b996 github: Test openmp on arm64ec too, in the test-openmp job 2026-07-21 11:32:43 +03:00
Martin Storsjö 20f2ac78ae tests: Test building/using openmp on arm64ec too 2026-07-21 11:32:43 +03:00
Martin Storsjö d7490b5ef2 build-openmp: Build openmp for arm64ec too 2026-07-21 11:32:43 +03:00
Martin Storsjö e5235c3287 build-llvm: Bump to LLVM 23.1.0 RC 1
Some notable changes since 22.x:
- Linking a weak declaration against a weak definition now works
  properly
- Many improvements for ARM64EC, including supporting linking
  against ARM64EC thin libraries
- Support for compiling for ARM64X (files targeting both native
  aarch64 and ARM64EC) with the -marm64x flag, which generates
  a multi-architecture object file. This should make it much
  more feasible, build system wise, to actually build things for
  ARM64X.
- Fixed aarch64 branch protection on Windows to use the right
  signing key (previously it the wrong one, which was inactive on
  Windows, and which broke unwinding in older versions of Wine)
2026-07-21 11:32:19 +03:00
Martin Storsjö 44c9c5fa20 build-mingw-w64: Bump to the latest version as of Jul 18th 2026-07-18 13:09:24 +03:00
Martin Storsjö 0abb154828 github: Don't add the bundled Python to PATH in test-llvm
Previously, we added the llvm-mingw bundled python to the head
of PATH, but we didn't expect to use it after all.

(In other tests, where we explicitly want to use the llvm-mingw
bundled python, we set -DPython3_EXECUTABLE="$Env:PYTHON_EXE.)

Previously (with runner image version 20260622.87.1), CMake ended
up choosing
C:/hostedtoolcache/windows/Python/3.13.14/x64/python3.exe, but
now (with runner image version 20260629.93.2) we ended up picking
C:/llvm-mingw/python/bin/python3.14.exe instead.

With the newer runner images, we do have
C:\hostedtoolcache\windows\Python\3.13.14\arm64\python3.exe in
PATH, but it is unclear why that doesn't get picked.

(Picking another version than the first one in PATH would make
sense if we'd have Python_FIND_STRATEGY=VERSION set. According to
the docs, that shouldn't be the default any longer though, and it
wouldn't explain why it picked 3.13 before when we provide
3.14.)

In any case, just skip adding our version to PATH since we
don't intend to use it, to make it use the system provided
version.
2026-07-05 23:20:24 +03:00
Martin Storsjö 170b7e1ec4 build-llvm: Bump to LLVM 22.1.8 2026-06-16 22:02:42 +03:00
Martin Storsjö 3dce018647 build-mingw-w64: Bump to the latest version as of Jun 16th 2026-06-16 22:02:25 +03:00
Martin Storsjö 5e74b0c0ea build-python: Update to Python 3.14.5 2026-06-05 18:50:50 +03:00
Martin Storsjö 0272df2cc1 build-llvm: Bump to LLVM 22.1.7 2026-06-02 12:20:07 +03:00
Martin Storsjö de5e31d1dd build-mingw-w64: Bump to the latest version as of Jun 2nd 2026-06-02 12:19:51 +03:00
Martin Storsjö 8adc11d4cf build-llvm: Bump to LLVM 22.1.6 2026-05-19 12:27:40 +03:00
Martin Storsjö 4ccd364457 build-mingw-w64: Bump to the latest version as of May 19th 2026-05-19 12:27:22 +03:00
Martin Storsjö ba72461e23 build-llvm: Bump to LLVM 22.1.5 2026-05-05 22:53:07 +03:00
Martin Storsjö 88885f361e build-mingw-w64: Update to the latest version as of May 5th 2026-05-05 22:52:21 +03:00
Martin Storsjö d69f101b09 docker: Update the system-clang testcase to use Clang 20
This is the newest version currently available in the Ubuntu 24.04
repos.

This fixes building; previously it failed to build libc++, which only
supports being built with one of the two preceding versions of Clang.
2026-04-28 14:23:41 +03:00
Martin Storsjö b59056fe41 docker: Remove arm64ec from the system-clang testcase
Building for arm64ec requires Clang/LLD 21.

This was added in cb92de78e7 without
considering the context in this testcase properly.
2026-04-28 14:18:16 +03:00