Commit Graph
917 Commits
Author SHA1 Message Date
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
Martin Storsjö 5264f99ade github: Stop setting PYTHON_EXECUTABLE in the openmp test job
This shouldn't be necessary any longer since commit
40079637569f999015eaf3f7e137a63b2c8ade92 in llvm-project (in
December 2022).
2023-04-11 11:06:43 +03:00
Martin Storsjö 8189893403 github: Update a comment about the openmp test job
We're now on 16.x, and the tests do pass, but we still skip running
these tests on regular pushes - we only do them for the scheduled
nightly builds.
2023-04-11 11:06:43 +03:00
Martin Storsjö c1d6c39d33 Revert "github: Disable building lldb-mi in the scheduled cross builds"
This reverts commit 1b216b6fdf.

It's now compatible with current llvm versions.
2023-04-11 00:08:38 +03:00
Martin Storsjö d347b2022c Revert "build-lldb-mi: Skip building lldb-mi, as it's incompatible with current llvm versions"
This reverts commit 49950ae6be.

It's now compatible with current llvm versions.
2023-04-11 00:08:27 +03:00
Martin Storsjö dc2c2e0727 build-lldb-mi: Bump to a version that builds in C++17 mode
This is compatible with LLVM 16 and git main.
2023-04-10 11:57:08 +03:00
Martin Storsjö 0b68b891e0 build-all: Remove stray/leftover help for an unsupported option
This was added in 050b4ef701, but this
option was never supported to be passed on to build-llvm.sh from
here.

Additionally, this option was removed entirely from build-llvm.sh
in bd190c04c3.
2023-03-28 11:38:53 +03:00
Martin Storsjö 51abc9117f build-llvm: Enable LLD_DEFAULT_LD_LLD_IS_MINGW for builds on Windows
This makes sure we get the right behaviour (and output from "--help")
if ld.lld.exe is called directly without a wrapper setting the -m
parameter.
2023-03-22 23:32:53 +02:00
Martin Storsjö 8ee28e2938 build-llvm: Enable the custom defaults for Clang when building natively on MSYS2
Normally our releases are cross-built from Linux, but we also
support building the toolchain in MSYS2. Enable the custom defaults
when building the toolchain in MSYS2 too.
2023-03-22 23:32:53 +02:00
Martin Storsjö 4a579e1562 build-llvm: Remove an unused variable
This became unused in 8536b740e3.
2023-03-22 23:32:53 +02:00
Martin Storsjö d5c9fb3e04 build-mingw-w64: Pass --disable-dependency-tracking when configuring mingw-w64-crt on MSYS2
Configuring the mingw-w64-crt build takes a really long time on MSYS2;
the generating Makefile phase takes easily 4-5 minutes, when the rest
of configure runs in a matter of seconds. By passing
--disable-dependency-tracking, the whole configure for mingw-w64-crt
takes 11-14 seconds where it previously took many mnutes.

This comes with the drawback that these build directories aren't
suitable for incremental development (unless manual care is taken
to rebuild all necessary files), but these builds are mostly done
for non-interactive building.

Thanks to Jeremy Drake for realizing this optimization opportunity,
and LIU Hao for making me aware of it.
2023-03-21 12:07:02 +02:00
Martin Storsjö 1ca5ecf22f build-llvm: Update to the final 16.0.0 release
Notable changes for mingw users are:
- Support demangling C++ symbols on i386 in LLVM backtraces
- Don't report fatal errors when the output pipe is closed on Windows
- Ignore file access times on Windows when comparing whether files are
  equivalent
2023-03-20 12:23:47 +02:00
Martin Storsjö 2994becbbe build-mingw-w64: Bump to the current version fron March 20th
Notable changes:
- Support for _FORTIFY_SOURCE=3
- Fortification of [v]s[n]printf for UCRT
- Add the __gets_chk function, for fortification of the (highly
  deprecated) gets function
- Fixed the inconsistent signature of the wcstok function on UCRT
  in string.h
- Allow opting out from SEH based setjmp/longjmp by defining
  __USE_MINGW_SETJMP_NON_SEH before including setjmp.h

And as usual, lots of other minor updates.
2023-03-20 12:23:47 +02:00
Martin Storsjö 1022231482 wrappers: Try to resolve short form 8.3 file names into long form
This allows the wrappers to invoke the right tool with the right
options, even when the wrapper was invoked with an obfuscated
short form file name.

This happens e.g. when CMake/Ninja invokes the tools from a path
that contains spaces.
2023-03-12 00:08:13 +02:00
Martin Storsjö b592dd734e tests: Consistently use <triple>-gcc instead of <triple>-clang for cross compilation
While <triple>-clang is more specific, using <triple>-gcc allows
testing GCC based toolchains (somewhat) with the same scripts/makefiles
too.
2023-03-11 23:59:19 +02:00
Martin Storsjö 3844ad9a95 build-python: Use $HOST-gcc instead of $HOST-clang for cross compilation
While $HOST-clang is more specific for the use in llvm-mingw,
using the form $HOST-gcc would allow using the same script in
GCC based environments too.
2023-03-11 23:53:10 +02:00
Martin Storsjö 75dc6fd314 strip-llvm: Strip out the new amdgpu-arch and nvptx-arch executables
These weren't present in LLVM 15.x.
2023-03-11 23:29:12 +02:00
Martin Storsjö 9e612d76f9 github: Stop setting LIBCXX_TARGET_INFO for the libcxx test setup
This variable is no longer needed/used.
2023-03-10 20:05:47 +02:00
Martin Storsjö 04ec21bea7 github: Run tests with the ffmpeg 6.0 release instead of 5.1.2 2023-03-09 13:54:10 +02:00
Martin Storsjö 22790a89f4 github: Don't run builds for tags, only pushes to branches
There's no need to rerun all the builds when pushing a tag.
2023-02-10 23:56:30 +02:00
Alvin Wong aca6871c26 Add a note in readme for Control Flow Guard 2023-02-10 23:55:51 +02:00
Martin Storsjö 8536b740e3 build-llvm: Use the new LLVM_NATIVE_TOOL_DIR option for pointing out preexisting native tools
This allows setting one variable pointing at all tools, instead
of setting multiple individual options for all tools.
2023-01-29 01:13:48 +02:00
Martin Storsjö c49460aa86 github: Add setup for running libcxx's tests on the built toolchain
Keep this disabled by default (since it takes a fair amount of time
and has good test coverage upstream), but including it in disabled
form so that it's easy to enable temporarily for testing occasionally.

Libcxx does test the mingw configuration in their own CI (with an older
pinned release of the compiler), so this is mostly redundant, and
primarily relevant for testing that the very latest compiler (and
python setup) works for the tests.
2023-01-29 01:13:39 +02:00
Martin Storsjö dfd4c31f2e test: Simplify handling of OpenMP
It is available on all architectures by default now. Keep the
HAVE_OPENMP conditional within the test makefile to allow custom
testing without having it available.
2023-01-29 01:09:17 +02:00
Martin Storsjö 6b8725333a build-openmp: Build the OpenMP library on all architectures
Since a356782426f5bf54a00570e1f925345e5fda7b2e in llvm-project,
OpenMP can be built for mingw/aarch64, since
fb947c358661b3bd3d5e1fa776ec74cc0f308854 it should work correctly
in all currently tested cases, and since
97958c9bb83cec44b6ce13e732b53de0171a5d43 it can be built for
mingw/armv7.
2023-01-29 01:09:17 +02:00
Martin Storsjö c31664aba4 Dockerfile.dev: Merge the ssp tests up with an earlier block 2023-01-29 01:09:17 +02:00
Martin Storsjö fb67e16120 build-all: Stop requiring curl to be available
Curl (or wget) isn't required for fetching libssp any longer,
so don't require it while running build-all.sh.

(It's still required by build-cross-tools.sh, for build-make.sh
though.)
2023-01-29 01:09:17 +02:00
Martin Storsjö 4ba7adbb90 run-tests: Check for the error messages from ssp routines
Since using the ssp routines from mingw-w64 instead of those from
GCC's libssp, these messages are included in the piped output of
the process, so we can check for the right messages.
2023-01-29 01:09:17 +02:00
Martin Storsjö abc36e1f7c run-tests: Stop trying to copy libssp-0.dll
We no longer build that DLL.
2023-01-29 01:09:17 +02:00
Martin Storsjö 4ee7cc97de build-libssp: Stop building the real libssp from GCC
As mingw-w64 now provides these routines, we no longer need to build
the original library from GCC.

As building with -fstack-protector-strong still links with -lssp
(and -lssp_nonshared), we still need to provide libraries with these
names, but they can be empty dummy libraries.
2023-01-29 01:09:17 +02:00