Commit Graph
946 Commits
Author SHA1 Message Date
Martin Storsjö 2f2114eed8 build-all: Add options for rebuilding runtimes only
This allows rebuilding runtimes with e.g. a different default CRT.
2023-06-01 11:25:03 +03:00
Martin Storsjö a7ff217a5b github: Allow creating a tag and release programmatically
This verifies that the chosen tag name matches what was set as
TAG in the workflow that artifacts are pulled from.
2023-06-01 11:24:37 +03:00
Martin Storsjö 87ab2cb43d github: Expose the job properties (TAG and versions) in an artifact too
While we use the job outputs since 18bd3665ac,
having the info available in an artifact makes it easier to
fetch this in later separate workflows.
2023-06-01 11:23:41 +03:00
Martin Storsjö bf2e255b5f github: Allow specifying either a commit or a branch for fetching artifacts 2023-06-01 11:23:04 +03:00
Martin Storsjö f03d94dbdc github: Update a comment 2023-06-01 11:20:55 +03:00
Martin Storsjö 37ec895756 github: Distinguish between push and scheduled pipelines when fetching artifacts 2023-05-31 11:11:38 +03:00
Creepercdn 9ce1f4da5d build-cross-tools: Add the --full-llvm option
This matches the same option in build-all.sh.
2023-05-29 22:33:53 +03:00
Martin Storsjö 3184cb2060 wrappers: Don't rely on "readlink -f"
Older macOS versions (macOS 12.2 at least) don't support this
option, while newer macOS versions do support it (macOS 12.6).

The solution is based on https://stackoverflow.com/a/1116890/3115956,
but simplified for this usecase.
2023-05-23 11:23:27 +03:00
Martin Storsjö fc5d2c9b21 github: Run on pull requests too 2023-05-23 11:22:57 +03:00
Dave Nicolson cdf05bbc50 Fix symlink paths 2023-05-22 23:55:06 +03:00
Martin Storsjö 274a30cff5 build-llvm: Bump to LLVM 16.0.4 2023-05-17 09:02:02 +03:00
Martin Storsjö 99701ab202 build-mingw-w64: Bump to the latest version as of May 17th 2023-05-17 09:01:43 +03:00
Martin Storsjö 995d3ac516 github: Run all the compiler-rt tests, on both i686 and x86_64
These tests should now all pass on both architectures; the
check-asan tests for the static CRT are skipped automatically,
the failures in check-interception have been fixed by compiling
the tests with the --large-address-aware flag, and the
check-asan-dynamic tests on i686 have been fixed - all by
Alvin Wong.
2023-05-05 08:27:15 +03:00
Martin Storsjö 001c3a2bcf build-llvm: Bump to LLVM 16.0.3 2023-05-03 22:49:42 +03:00
Martin Storsjö 4ad11c7bec build-mingw-w64: Bump to the current version as of May 3rd 2023-05-03 22:49:40 +03:00
Martin Storsjö 0b185b62d1 build-compiler-rt: Make the CMAKE_C_COMPILER_TARGET vendor field consistent
Currently, there's no practical difference if the spelling of this
triple is inconsistent, but if we'd enable e.g. the per-target
runtime directories, the exact spelling does make a difference.

For consistency, pass CMAKE_C_COMPILER_TARGET with the exact right
spelling everywhere.
2023-04-29 22:30:41 +03:00
Martin Storsjö 06ff1fdd4f Revert "build-compiler-rt: Stop setting CMAKE_*_COMPILER_WORKS"
This reverts commit 056cb22fb5.

The fix for avoiding needing to set CMAKE_*_COMPILER_WORKS,
which means setting CMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY
when intiailizing the CMake project setup, was only possible to
apply on compiler-rt/lib/builtins, not other similar projects
like libunwind/libcxxabi/libcxx - so it's expected to keep needing
to set the CMAKE_*_COMPILER_WORKS flags.

Therefore it's also possible that the code in compiler-rt/lib/builtins
could be reverted, as it does have some other minor inconveniences
(it causes some other feature detections to fail, even if they're
harmless within the builtins).

Thus keep setting CMAKE_*_COMPILER_WORKS everywhere consistently.
2023-04-29 22:26:35 +03:00
Martin Storsjö a8629002bf github: Do rudimentary testing of the cross-built aarch64 toolchain with qemu
Verify that it can compile the tests in llvm-mingw's testsuite;
this should serve as a smoke test to see that the toolchain is
correctly assembled.
2023-04-28 10:04:39 +03:00
Martin Storsjö 0e13ea4e5a build-llvm: Bump to LLVM 16.0.2
A couple relevant changes since 16.0.0:
- Fix compilation for ARM (failures in generating SEH unwind info)
  for very specific cases
- Link the ASAN DLL before other libs and objects, to make sure it gets
  initialized as early as possible
- Allow double backslashes in the PATH in ASAN
- Allow llvm-rc to look for a clang executable named "clang-16", if the
  other alternatives aren't available
- Improve the performance of buffered raw_ostream within LLVM
2023-04-27 10:50:36 +03:00
Martin Storsjö cc197e4ae6 build-mingw-w64: Bump to the current version from April 24th 2023-04-27 10:50:36 +03:00
Martin Storsjö 46215b2510 build-python: Bump to Python 3.10.11 2023-04-27 10:50:36 +03:00
Martin Storsjö 4855077598 build-lldb-mi: Bump to the latest current version 2023-04-27 10:50:36 +03:00
Martin Storsjö 1fb5681e58 github: Add a job for cross compiling the toolchain for linux on aarch64 2023-04-27 10:47:51 +03:00
Martin Storsjö 1ab52ba4a3 github: Generalize the patterns for moving artifacts that are to be uploaded
Exclude the artifacts from the asserts build, if available.
2023-04-27 10:47:15 +03:00
Martin Storsjö 525489a018 github: Rename the linux-cross job to linux-cross-windows 2023-04-26 19:18:24 +03:00
Martin Storsjö 75c4092b8f Add a script for preparing a cross-built toolchain for the unix layout 2023-04-26 19:18:24 +03:00
Martin Storsjö 8f3c096ef5 build-all: Allow passing --host for cross compiling the tools 2023-04-26 19:18:24 +03:00
Martin Storsjö 06f44cda62 Support cross compilation to non-windows targets
Don't have --host/$HOST imply targeting Windows, but actually inspect
the target triple where necessary.
2023-04-26 19:18:24 +03:00
Martin Storsjö c49af4399a github: Skip dependencies (libxml2, terminfo) in linux builds that have little value in our context
The fewer dynamic library dependencies we have, the easier it is
to run the binaries on other linux distributions than the one it
was built on.

In the docker based releases, these libraries haven't been installed
and thus haven't been used so far.

The docker based releases haven't linked against zlib though, but
keep linking against that, since that should have a quite stable
ABI and not cause much binary compatibility issues.
2023-04-26 10:01:42 +03:00
Martin Storsjö af99275e2e Remove unnecessary empty cases in shell scripts 2023-04-26 10:01:21 +03:00
Martin Storsjö 21da44ac93 build-lldb-mi: Sync cross compilation logic improvements from build-llvm.sh 2023-04-26 10:01:21 +03:00
Martin Storsjö fbb0af91b3 readme: Mention and link to the nightly builds 2023-04-25 13:29:20 +03:00
Martin Storsjö 12434469b9 github: Add a separate manual workflow for uploading artifacts to a release 2023-04-25 09:59:28 +03:00
Martin Storsjö 586a9acf02 github: Upload all artifacts from scheduled builds to the "nightly" release 2023-04-25 09:59:28 +03:00
Martin Storsjö 48276b7f42 github: Remove the unnecessary arch suffix on the intermediate install directory in the linux-cross jobs
The packaged directory gets renamed to include a suffix in the end
anyway.
2023-04-25 09:59:28 +03:00
Martin Storsjö 7a5dfaf469 github: Run the non-asserts linux build on 20.04
This should make the produced artifact more widely compatible.

Releases built with release.sh with the dockerfile are currently
based on Ubuntu 18.04 though, and are more shielded from potential
extra libraries that are found during the build.
2023-04-25 09:59:28 +03:00
Martin Storsjö 8abf794331 github: Produce artifacts with names that match the actual releases 2023-04-25 09:59:28 +03:00
Martin Storsjö 085653b6c8 github: Rename the "get-versions" step to "prepare" 2023-04-25 09:59:28 +03:00
Martin Storsjö 8d1d6f9947 github: Set the versions to build in scheduled builds via the GHA "env" field
For non scheduled builds, those env variables are just left empty.

This is much neater than using the "versions" file, and uses much
fewer lines of code.

We still probably want to bundle a file labelling what versions
it contains in the built packages though; give that file a
.txt suffix.
2023-04-25 09:58:25 +03:00
Martin Storsjö 18bd3665ac github: Use job outputs instead of a "versions" artifact/file
This is more idiomatic, requires fewer lines of code and doesn't
require passing an actual file along (unless we want to).
2023-04-24 11:36:22 +03:00
Martin Storsjö f0b14f9e20 github: Sync the cpython-mingw branch used with build-python.sh 2023-04-22 23:18:55 +03:00
Martin Storsjö afedda2cbd github: Remove a redundant "update: false" for setup-msys2
"update: false" is the default, and we don't specify it elsewhere.
2023-04-22 01:28:26 +03:00
Martin Storsjö 240fb4205b release-macos: Remove the explicit call to strip-llvm.sh
Since e56fb975e9, strip-llvm.sh
has been called as part of build-all.sh.

This avoid stripping out files that have been installed into the
share directory by later stages in build-all.sh. (strip-llvm.sh
currently flat out removes the share directory.)
2023-04-20 14:00:24 +03:00
Martin Storsjö dd24bdd749 strip-llvm: Don't strip out clang-target-wrapper
This avoids losing files if running strip-llvm after build-all.sh
instead of as part of it.
2023-04-20 14:00:24 +03:00
Martin Storsjö aa173210ff strip-llvm: Don't wipe out the whole share directory
Keep removing the same items installed by LLVM as before (although
that could be revisited too).

This avoids removing unintended files if running strip-llvm after
the installation of other components.
2023-04-20 14:00:24 +03:00
Martin Storsjö 3f72fcbabf strip-llvm: Strip out some darwin specific files 2023-04-20 14:00:24 +03:00
Martin Storsjö 0b3fc13a42 github: Add a job for running compiler-rt tests 2023-04-20 10:40:35 +03:00
Martin Storsjö 5d778657c2 github: Include libcxxabi and libunwind tests in the test-libcxx job too
These test suites now pass in the latest git main.

This target isn't run automatically anywhere, but in case the
target is enabled to run the tests, include the libcxxabi and libunwind
test suites too.
2023-04-20 10:36:19 +03:00
Martin Storsjö 0ab70b67d8 github: Remove ignores for failing ffmpeg tests
These no longer fail; they were fixed in ffmpeg in commit
76b33704b628248d77ed61cbef9ecd9430a4b6c5 in July 2022; we currently
test a pinned 6.0 release, where this fix is included.
2023-04-19 23:18:17 +03:00
Martin Storsjö b495c39a6d github: Use less specific filenames in the ffmpeg test jobs
This reduces the differences if using a proper release tarball
instead of an artifact from an earlier step (if testing parts of
the workflow by modifying it).
2023-04-19 23:18:17 +03:00