Commit Graph
970 Commits
Author SHA1 Message Date
Martin Storsjö a861db9f43 github: Build LLDB for Linux too
Disable Python, to make the LLDB executables more portable,
so they don't rely on whatever version might have been installed on
the GitHub Actions runner.
2023-08-01 10:05:54 +03:00
Martin Storsjö 8b01a132c5 github: Build lldb on macos, but only disable python 2023-08-01 10:01:45 +03:00
Martin Storsjö fec22cf2dd github: Update comments regarding tests and the pinned llvm version 2023-07-29 23:47:33 +03:00
Martin Storsjö bad114ca4e build-llvm: Bump to LLVM 17.0.0 RC1
Relevant changes since 16.0.6 are:
- Improve Address Sanitizer on i686 mingw
- Improve handling of X86 Intel assembly syntax
- Fix using std::wcout/wcin/wcerr with streams configured in wide mode
- Improve handling of the .arch and .arch_extension assembly directives
  on aarch64
- Support the --temp-prefix (ignored) and --no-leading-underscore
  options in llvm-dlltool
- Make lld warn about too narrow pseudo relocations, simplifying finding
  issues that otherwise only show up at runtime
- Improved the tests, making compiler-rt, libcxxabi and libunwind tests
  pass in mingw configurations
2023-07-29 23:47:19 +03:00
Martin Storsjö 39f3bbfae6 build-mingw-w64: Bump to the latest version as of July 29th 2023-07-29 13:46:22 +03:00
Martin Storsjö f03e8e9f8e docker: Install a newer CMake
LLVM 17 requires CMake 3.20 or newer, while Ubuntu 20.04 ships with
CMake 3.16.3.
2023-07-29 13:45:29 +03:00
Martin Storsjö c18225c0d0 build-make: Bump to GNU make 4.4.1
Versions 4.3 and above only come packaged as .tar.gz and .tar.lz,
and the lzip decompressor is less commonly readily available, thus
switch back to the .tar.gz format.
2023-07-20 10:53:08 +03:00
Martin Storsjö df2d78fbd7 build-make: Take the CLEAN variable into account like in other scripts 2023-07-20 10:53:08 +03:00
Martin Storsjö fa0eec51be strip-llvm: Retain clang-format and related files 2023-07-10 00:52:51 +03:00
Martin Storsjö 271242426a build-llvm: Bump to LLVM 16.0.6 2023-06-14 09:20:01 +03:00
Martin Storsjö b2ea9ee944 build-mingw-w64: Bump to the latest version as of June 14th 2023-06-14 09:20:01 +03:00
Martin Storsjö 5d33931b6a run-lldb-tests: Convert a missed direct use of objcopy.exe to $OBJCOPY
This was missed in 299f03fd45.
2023-06-13 12:52:07 +03:00
Martin Storsjö 4fbff5e912 github: Rename the upload-artifacts.yml workflow
It can make the whole release, not only upload artifacts.
2023-06-03 19:53:04 +03:00
Martin Storsjö 7e8bcdc43c build-llvm: Bump to LLVM 16.0.5 2023-06-02 17:42:49 +03:00
Martin Storsjö ed1d727ed7 build-mingw-w64: Bump to the current version as of June 2nd 2023-06-02 17:42:00 +03:00
Martin Storsjö 5d63c28d85 docker: Upgrade to Ubuntu 20.04
Ubuntu 20.04 comes with CMake 3.16, so there's no need to install
a custom version of CMake for now (for LLVM 16.x; LLVM 17 will have
the requirement raised to CMake 3.20 though).

Also drop the workaround for git issues in the old version in
Ubuntu 18.04.

The latest releases that are built on GitHub Actions without
docker are based on Ubuntu 20.04 anyway, so there's less demand
for building this with an older version for the sake of
compatibility of the built binaries. For users using the built
docker image as such, having it based on a newer base distribution
is beneficial.
2023-06-01 19:54:57 +03:00
Martin Storsjö 64b27a1c56 github: Add a manual workflow for building and pushing docker images 2023-06-01 19:54:57 +03:00
Martin Storsjö bf58d32dc4 docker: Make the CMake download and extraction less verbose
The wget command can easily print 800 lines to the docker output
log, and the tar unpacking prints over 6000 lines.
2023-06-01 19:54:57 +03:00
Martin Storsjö 1d7cf51b96 github: Add a manual workflow for building extra msvcrt binaries
They can optionally be uploaded to a release.
2023-06-01 19:54:57 +03:00
Martin Storsjö 41c45dafd8 github: Generalize the linux-cross-windows job for other CRTs 2023-06-01 19:54:57 +03:00
Martin Storsjö 5cc5132bff github: Name the windows artifacts windows-ucrt-<arch>-toolchain 2023-06-01 19:54:57 +03:00
Martin Storsjö 1b9fb522f5 github: Rename the macos-toolchain artifact to macos-ucrt-toolchain 2023-06-01 19:54:00 +03:00
Martin Storsjö 1e982132d5 github: Rename the linux-aarch64-toolchain artifact to linux-ucrt-aarch64-toolchain 2023-06-01 11:25:03 +03:00
Martin Storsjö 6a296622e0 github: Rename the linux-toolchain artifact to linux-ucrt-x86_64-toolchain 2023-06-01 11:25:03 +03:00
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