Commit Graph

409 Commits

Author SHA1 Message Date
Saleem Abdulrasool
3f4d0d2c0c utils: remove an unnecessary parenthetical
We can pass the raw dictionary directly, remove the unnecessary
punctuation.
2025-01-29 15:28:22 -08:00
Saleem Abdulrasool
ffdebddcf8 utils: merge adjacent build blocks
These were isolated by interleaving operations. However, recent tweaks
to the build have removed those. Merge the adjacent sections to show the
contiguous build segment.
2025-01-29 15:27:41 -08:00
Saleem Abdulrasool
e3a90d76f6 utils: remove a dead parameter in build.ps1 2025-01-29 15:27:41 -08:00
Stefan Gränitz
c1e0770b31 utils: include Fetch-Dependencies step in build.ps1 time tracking (#78976)
Build bot runtimes are very long and not fully transparent right now. In addition to the steps for build and test, we should keep an eye on Fetch-Dependencies.
2025-01-29 09:42:07 -08:00
Saleem Abdulrasool
07a3189966 Merge pull request #78953 from compnerd/test-all-the-things
utils: synchronise `-Test '*'` with build-windows-toolchain.bat
2025-01-28 16:29:06 -08:00
Hiroshi Yamauchi
e838cecef1 Adjust to mimalloc v3.0.1 and enable mimalloc arm64 2025-01-28 15:13:44 -08:00
Stefan Gränitz
76243a25db [windows][toolchain] Build sanitizers and builtins standalone for all SDKs (#78861)
Unified builds of compiler-rt together with LLVM failed for the Android SDKs. It got too complicated to redirect the way LLVM would configure the nested build-trees. Standalone builds slightly increase build time, but they turned out much simpler and we end up with less duplication of definitions.
2025-01-28 22:08:07 +01:00
Saleem Abdulrasool
4a357fd2e8 utils: synchronise -Test '*' with build-windows-toolchain.bat
Extend the default full test set to include the same set that the rest
of the testing that is now enabled by default on swift.org CI.
2025-01-28 10:56:44 -08:00
Stefan Gränitz
459e59265d [windows] Prepare toolchain build to run tests for LLDB (#76894)
The LLDB test suite is not very stable on Windows. In order to improve the situation, however, we need to get it tested continuously. This patch attempts to solve the chicken-egg problem. It introduces a simple override for unstable tests: list them in file `utils/windows-llvm-lit-test-overrides.txt` and SwiftCI will skip/xfail them.

This approach has a number of benefits:
* overrides don't need to be in sync with https://github.com/swiftlang/llvm-project
* overrides are tracked in one place and are not spread across the LLDB test suite
* overrides are swiftlang-specific, which clearly states the differences to upstream LLVM
* we can enable continuous testing (and get reports for new failures) without fixing the world first

Once the remaining subset of tests passes reliably, we can iterate to enable the others and increase coverage. This change implements the infrastructure. There is a separate PR to enable tests in CI, which can be reverted with fewer side-effects.
2025-01-27 17:59:22 -08:00
Saleem Abdulrasool
b73b90fc6c Merge pull request #78931 from compnerd/gnuwin32
utils: introduce the ability to use the GNU driver on Windows
2025-01-27 11:11:56 -08:00
Saleem Abdulrasool
0944fa486b Merge pull request #78933 from compnerd/cleanliness-and-order
utils: adjust the `-Clean` option to clean before execution
2025-01-27 08:43:48 -08:00
Saleem Abdulrasool
22d97b5256 utils: introduce the ability to use the GNU driver on Windows
Add support to `Build-CMakeProject` to use the GNU driver on Windows.
This is preparatory work to get the experimental runtime build working
(and subsequently enable a static SDK for Windows). It also opens the
possibility to explore the performance gap between MSVC and clang.
2025-01-26 18:19:15 -08:00
Saleem Abdulrasool
877c53a0e5 utils: adjust the -Clean option to clean before execution
This hoists the cleaning to prior to building the toolchain. This is
particularly important as changes in the module format may cause the
compiler to crash. Due to the use of Swift in the Swift compiler, we
load modules early and a previous run may have left over modules from
the last run, which would result in the module attempting to be loaded.
This cleans out the extra modules before the toolchain build avoiding
that.
2025-01-26 13:27:57 -08:00
Saleem Abdulrasool
44a055773b utils: remove duplication from a bad merge
We were computing the SDKROOT multiply with the same logic twice which
is unneeded. Clean this up to compute it once.
2025-01-26 12:45:25 -08:00
Saleem Abdulrasool
347231241e Merge pull request #78862 from compnerd/sdksettings
utils: start generating a SDKSettings.json on Windows
2025-01-25 08:08:13 -08:00
Alex Hoppen
906764a205 [Windows] Adjustments to build.ps1 for restructuring of indexstore-db 2025-01-24 23:09:13 -08:00
Saleem Abdulrasool
33eab01cfb Merge pull request #78859 from compnerd/cleaning
utils: update build.ps1 to improve the `-Clean` option
2025-01-24 09:06:56 -08:00
Saleem Abdulrasool
b1fba460f9 Merge pull request #78831 from compnerd/pure
utils: disable C compiler for ASN1
2025-01-23 12:51:02 -08:00
Stefan Gränitz
7bbd5d73a1 utils: re-enable testing for libdispatch in build.ps1 (#78685) 2025-01-23 12:13:05 -08:00
Saleem Abdulrasool
ce4ad6f0db utils: start generating a SDKSettings.json on Windows
When building SDKs, generate a SDKSettings.json file to silence a
spurious warning from swift-driver.
2025-01-23 11:21:35 -08:00
Saleem Abdulrasool
ef0e596722 utils: update build.ps1 to improve the -Clean option
Clear out the android builds as well as any leftovers from a previous
test run which would possibly break the build in the case that the
compiler was updated.
2025-01-23 10:30:43 -08:00
Saleem Abdulrasool
cbae09a727 utils: disable C compiler for ASN1
The ASN1 project does not have C code so passing the C compiler causes
some warnings.
2025-01-22 16:48:40 -08:00
Saleem Abdulrasool
0f1bea868a utils: convert System to static
Build System as static as it has been internalised into SPM and no
longer needs to be shared across multiple targets. This reduces the
number of distributed files and helps reduce the binary size (~56KiB).
2025-01-22 15:30:01 -08:00
Saleem Abdulrasool
e5d36eaa68 utils: stop building Yams as the only consumer no longer uses it
This cleans up the build to remove Yams which will save some time in the
build. It also simplifies the build a bit.
2025-01-22 09:15:38 -08:00
Saleem Abdulrasool
7a8cc95734 utils: convert SystemPackage to static linkage
SwiftSystem is only used in a single location in SPM, allowing us to
collapse the file into the single site. This reduces the overall
toolchain size by ~56K. It also removes the need to ship the extra DLL.
2025-01-17 13:59:55 -08:00
Alex Hoppen
e2235e201c Merge pull request #78421 from ahoppen/add-sourcekit-plugin
[SourceKit] Add mechanism to load plugins for request handling into SourceKit
2025-01-15 12:42:10 -08:00
Saleem Abdulrasool
3d77bf6142 Update build.ps1 2025-01-13 07:50:09 -08:00
Saleem Abdulrasool
a3e365e8ef Update build.ps1 2025-01-12 18:34:54 -08:00
Saleem Abdulrasool
9ecfdcdf81 utils: introduce a ToolchainInfo.plist on Windows
This allows us to add an identifier to the toolchain on Windows similar
to the swift.org toolchains generated on macOS. The newly introduced
identifiers should help support having parallel installable toolchains.
2025-01-12 12:11:56 -08:00
Alex Hoppen
c0ad0b62b6 [SourceKit] Support Windows for the SourceKit plugin 2025-01-10 19:21:20 +01:00
Saleem Abdulrasool
a6ff5db30c utils: update short name for Android
Update the shortnames used for the android SDK builds to allow building
the SDK properly.
2025-01-06 14:25:29 -08:00
Evan Wilde
cace199e0e Merge pull request #78433 from etcwilde/ewilde/force-response-file-on-windows
Use Response file for SwiftFoundation
2025-01-04 09:54:32 -08:00
Evan Wilde
1668373895 Use Response file for SwiftFoundation
The command-line length to compile SwiftFoundation for arm64
exceeds the maximum command-line length on Windows.
Force CMake to use a response file to get around this limitation.
2025-01-03 19:21:51 -08:00
Henrik G. Olsson
ef9d2b744d Rename pointer bounds (#78210)
* Make pointer bounds non-experimental

* Rename @PointerBounds to @_SwiftifyImport

* Rename filenames containing PointerBounds

* Add _PointerParam exception to stdlib ABI test

* Add _PointerParam to stdlib API changes

* Rename _PointerParam to _SwiftifyInfo
2024-12-20 11:36:01 +01:00
Hiroshi Yamauchi
7ba44982f0 Merge pull request #78249 from hjyamauchi/nativearm64
Fix the runtime and the SDK paths for the swift build compiler case
2024-12-19 12:37:46 -08:00
Hiroshi Yamauchi
4a98e371fe Fix the runtime and the SDK paths for the swift build compiler case
This fix is necessary for the native win arm64 build where arm64 isn't
the first in the WindowsSDKs list.
2024-12-18 15:56:08 -08:00
Saleem Abdulrasool
577945df01 Merge pull request #77624 from compnerd/lmdb
utils: adjust Windows build to use shared LMDB
2024-12-18 10:05:36 -08:00
Hiroshi Yamauchi
d482ab73bc Update the pinned toolchain for Windows and enable SwiftCompilerSources for Win/ARM64 2024-12-13 09:24:44 -08:00
Hiroshi Yamauchi
5d9505192c utils: unlock building swift-inspect
When building for ARM64, we can now build swift-inspect as we use CMake
for the cross-compilation.

This is a second attempt for https://github.com/swiftlang/swift/pull/77810
2024-12-09 12:16:22 -08:00
Saleem Abdulrasool
56e292dbd0 Merge pull request #78002 from compnerd/generated-names
utils: update property for Windows SDK MSI
2024-12-09 08:13:41 -08:00
Saleem Abdulrasool
2914d0e46e Merge pull request #77986 from compnerd/mimallocate
utils: simplify mimalloc build handling
2024-12-07 15:52:40 -08:00
Saleem Abdulrasool
664bece475 utils: simplify mimalloc build handling
Use a bit more of a declarative style for describing the build rules for
mimalloc.
2024-12-06 14:39:26 -08:00
Hiroshi Yamauchi
5cecca8a60 Revert "utils: unlock building swift-inspect"
Revert https://github.com/swiftlang/swift/pull/77810

Fix the swift-inspect build in https://ci-external.swift.org/job/swift-main-windows-toolchain-arm64
2024-12-06 14:37:20 -08:00
Hiroshi Yamauchi
e943d0f0d2 Revert "[windows] Various improvements in build.ps1"
Revert https://github.com/swiftlang/swift/pull/77948

To fix CI https://ci-external.swift.org/job/swift-main-windows-toolchain-arm64/785/consoleText
2024-12-06 14:37:05 -08:00
Hiroshi Yamauchi
32832dd1e1 Revert "[windows][toolchain] Enable builtins and sanitizers"
Revert https://github.com/swiftlang/swift/pull/77770

To fix CI https://ci-external.swift.org/job/swift-main-windows-toolchain-arm64/785/consoleText
2024-12-06 14:22:30 -08:00
Saleem Abdulrasool
99d0221836 utils: adjust installer build and staging
Update the property to include the SDK MSI for Windows as we start
adding additional platforms. Update the file name patterns to reflect
the new naming.
2024-12-06 08:45:48 -08:00
Saleem Abdulrasool
1d1ecb44a0 utils: drop cmake version check
There is no guarantee that `cmake` is available in the path. CMake may
be provided through VS or the VS Build Tools, in which case, you must be
in a VSDevCmd environment to invoke `cmake`. This adds quite a bit of
complexity for little gain as the projects will check of the minimum
version required (`cmake_minimum_required`).
2024-12-05 16:09:29 -08:00
Saleem Abdulrasool
3ab2a3ee4c Merge pull request #77770 from weliveindetail/windows-toolchain-sanitizers
[windows][toolchain] Enable builtins and sanitizers
2024-12-05 15:46:46 -08:00
Saleem Abdulrasool
5db0f83ac7 Merge pull request #77948 from weliveindetail/buildps1-mod-combined
[windows] Various improvements in build.ps1
2024-12-05 12:59:36 -08:00
Saleem Abdulrasool
1b2a90133e Merge pull request #77810 from compnerd/crossed-inspector
utils: unlock building swift-inspect
2024-12-05 11:22:21 -08:00