Commit Graph

411 Commits

Author SHA1 Message Date
Dmitrii Galimzianov
a8b71ea97f Add -print-diagnostic-groups flag
This change adds the `-print-diagnostic-groups` flag as described by SE-0443.
2024-09-11 13:34:42 +02:00
Yuta Saito
ba63b9f628 Merge pull request #75821 from kateinoigakukun/pr-680047d2b871e809cf13f27c8a4a5abc2f5c31d2
[wasm] Annotate errno as SwiftPrivate by apinotes
2024-08-17 14:35:42 +09:00
Yuta Saito
be08ebb12a [wasm] Annotate errno as SwiftPrivate by apinotes
This patch adds an apinotes file for SwiftWASILibc clang module to mark
`errno` macro hidden from Swift code. This resolves ambiguity between
the C macro definition and the Swift wrapper in WASILibc overlay module.

This change installs the apinotes file to the resource directories for
both lib/swift/apinotes and lib/swift_static/apinotes.
2024-08-16 10:57:24 +00:00
Alex Lorenz
d35af38ce4 Merge pull request #75721 from hyp/eng/75691
[windows] split out complex module from ucrt module, to allow new swi…
2024-08-12 08:30:47 -07:00
Yuta Saito
90799cfdf7 Revert "[wasm] Fix ambiguous errno error when importing WASILibc module"
This reverts commit 164ec0adaa.
2024-08-10 13:29:48 +00:00
Yuta Saito
164ec0adaa [wasm] Fix ambiguous errno error when importing WASILibc module
This commit fixes an ambiguous `errno` error when importing WASILibc
module and SwiftWASILibc Clang module.

The error is caused by the fact that we define a shim for `errno` in
`Platform.swift` file, but wasi-libc defines `errno` in a way
ClangImporter can understand. We don't need to define shims for it,
otherwise we get two candidates for `errno` identifier.
2024-08-07 04:28:29 +00:00
Alex Lorenz
b62eafd866 [windows] split out complex module from ucrt module, to allow new swift-foundation to import ucrt when C++ interoperability is enabled
Fixes https://github.com/swiftlang/swift/issues/75691
2024-08-06 11:33:03 -07:00
Yuta Saito
65f9badbcd [wasm] Add shims for aliased errno constants in WASILibc overlay
We provide shims for errno constants in WASILibc overlay since
wasi-libc's errno.h defines those constants in a way that cannot be
imported by ClangImporter.
However, some errno constants are aliased in wasi-libc, and we didn't
provided shims for them. This patch adds those missing shims.
2024-08-03 07:51:49 +00:00
Alex Lorenz
c03627014e [android] fix path and cmake local build target tracking for posix_filesystem.apinotes
This apinote file needs to be accessible in the locally built Android SDK as it's being built with build.ps1, so that swift-foundation can be built with that file present. This change ensures that the file is copied over into the local build directory for that Android SDK, in addition to being included in the installed component

This change also places the component into lib/swift/apinotes, as that's where the clang importer already looks for API notes
2024-07-25 21:25:25 -07:00
Alexander Cyon
c21b1e68fd [stdlib] Fix typos 2024-07-06 13:09:57 +02:00
Guillaume Lessard
8733ecd012 Merge pull request #75000 from glessard/rdar99047401-err-nosendable
[concurrency/stdlib] declare `POSIXErrorCode` as `Sendable`
2024-07-05 16:58:51 -07:00
Guillaume Lessard
ab117c997d [concurrency] declare POSIXErrorCode as Sendable 2024-07-05 13:34:26 -07:00
Saleem Abdulrasool
f011de6ce8 Merge pull request #74829 from compnerd/android-notes
ClangImporter: add support for Android API Notes
2024-07-01 11:34:46 -07:00
Saleem Abdulrasool
47f9d78990 ClangImporter: add support for Android API Notes
Introduce the first APINotes injection for the Android platform. This
follows the VCRuntime pattern of permitting the SDK to provide API Notes
that augment the system SDK. This adds a workaround for incorrect
nullability on the `fts_open` function in bionic. The system library
itself is fixed at:
https://android-review.googlesource.com/c/platform/bionic/+/3151616
2024-06-28 13:24:04 -07:00
Saleem Abdulrasool
22817ccf1a Platform: add sys_xattr module for Android
This module was left out from the modulariation pass. The declarations
here are required for building swift-foundation for Android.
2024-06-26 12:33:36 -07:00
Kuba Mracek
6eeef12849 [embedded] Add a embedded-libraries CMake target to simplify the test dependencies 2024-06-23 13:08:01 -07:00
Alex Lorenz
98b74d8010 [android] do not import stdatomic from android's libc++
android's libc++ uses an older module map that requires C++23 for stdatomic, and thus it fails to compile with anything else
2024-06-12 10:04:14 -07:00
Alex Lorenz
5aa63fc93e Merge pull request #72634 from hyp/eng/android/ndk-overlay
[android] add an Android NDK Swift overlay
2024-06-05 19:35:13 -07:00
Alex Lorenz
46502f9249 Merge pull request #72161 from hyp/eng/android-ndk-modulemap
[android] add a module map for Android NDK
2024-06-05 19:35:00 -07:00
Alex Lorenz
743a501d1b comment cleanup 2024-06-05 10:53:15 -07:00
Alex Lorenz
e9739d7787 remove additional glibc android check from cmake 2024-06-04 12:37:59 -07:00
Alex Lorenz
9c31f98f6f [cmake] fix android header name targets 2024-06-04 12:37:51 -07:00
Alex Lorenz
8b8c72acd8 [stdlib] add a _math module overlay for Android for deprecated constants 2024-06-04 12:37:43 -07:00
Saleem Abdulrasool
c3d825144c Merge pull request #74040 from STREGA/main
Revert remove cplusplus requirement on XAudio29
2024-05-31 14:33:20 -04:00
STREGA
d69790bde2 Revert remove cplusplus requirement on XAudio29 2024-05-30 22:48:07 -04:00
Alex Lorenz
664f332994 Android: do not re-export macros from linux/stat.h from other modules
This lets us declare constants in the Android platform module using the expected mode_t type
2024-05-28 13:08:39 -07:00
Alex Lorenz
607766299b drop android stuff 2024-05-28 13:02:16 -07:00
Alex Lorenz
57b89d5303 [android] add an android NDK Swift overlay module, and use it instead of Glibc 2024-05-28 12:57:38 -07:00
Alex Lorenz
95493f673d [android] add a module map for Android NDK
This commit doesn't install them yet, they will be installed and a whole Android NDK module will be built in a follow-up commit

This module map covers the Bionic C standard library and other Posix headers used in the Android NDK
2024-05-28 12:55:02 -07:00
Alex Lorenz
444e2f465b Android: do not re-export macros from linux/stat.h from other modules
This lets us declare constants in the Android platform module using the expected mode_t type
2024-05-28 08:58:23 -07:00
Alex Lorenz
dac073965b [android] add a module map for Android NDK
This commit doesn't install them yet, they will be installed and a whole Android NDK module will be built in a follow-up commit

This module map covers the Bionic C standard library and other Posix headers used in the Android NDK
2024-05-26 20:00:10 -07:00
Saleem Abdulrasool
b68188b00c Platform: add new module for VC 17.10.0
The new headers for LWG-3268 in the new VC release broke the
modularisation of `std.atomic`. Add the dependent private module to
ensure that we correctly modularise the dependency and allow
`std.atomic` to be built again.
2024-05-22 13:10:08 -07:00
Alastair Houghton
20714b5fb9 [Platform] Rename modules for C library headers to match Darwin.
The Darwin headers have a naming convention for these modules; we should
match it.

rdar://123503615
2024-05-07 21:34:43 +01:00
Alastair Houghton
b6a3d22a06 [Platform] Updated after review comments.
Added the _modules workaround to make the compiler pull in the correct
module when someone does `import stdc_assert` (for instance).

Fix various niggles.

rdar://123503615
2024-05-07 17:00:18 +01:00
Alastair Houghton
4262b7e4a4 [Platform] Update musl modulemap and improve musl platform support.
We need to declare separate top-level modules for every header in
the musl C library.  Note that our set-up here does require some
tweaks to musl itself (specifically, the `alltypes.h` header needs
some fairly serious massaging to make it module compatible; in
particular, we need to pull out every type declaration into its
own separate modularized header in `bits/types`).

Also update `Platform.swift` a little for more musl support.

rdar://123503615
2024-05-07 17:00:18 +01:00
Artem Chikin
01d891ad99 Merge pull request #72834 from artemcm/UpstreamVisionOS
Introduce visionOS Platform
2024-04-15 09:33:49 -07:00
Saleem Abdulrasool
5919346b32 Platform: add UserEnv module to WinSDK
This allows access to the `GetUserProfileDirectoryW` API which is
required for the swift-foundation implementation on Windows.
2024-04-12 10:25:32 -07:00
Artem Chikin
1f14158a1d Introduce VisionOS Platform
This change introduces a new compilation target platform to the Swift compiler - visionOS.

- Changes to the compiler build infrastrucuture to support building compiler-adjacent artifacts and test suites for the new target.
- Addition of the new platform kind definition.
- Support for the new platform in language constructs such as compile-time availability annotations or runtime OS version queries.
- Utilities to read out Darwin platform SDK info containing platform mapping data.
- Utilities to support re-mapping availability annotations from iOS to visionOS (e.g. 'updateIntroducedPlatformForFallback', 'updateDeprecatedPlatformForFallback', 'updateObsoletedPlatformForFallback').
- Additional tests exercising platform-specific availability handling and availability re-mapping fallback code-path.
- Changes to existing test suite to accomodate the new platform.
2024-04-10 09:38:02 -07:00
Eric Miotto
0cac358fe5 Do not install binary swiftmodule for Darwin
This is needed to support Apple internal configurations that would fail
consuming such binary swiftmodule (but work as expected when rebuilding
from the swiftinterface).

Addresses rdar://124390643
2024-03-27 10:56:55 -07:00
Yuta Saito
bc8f42d88e Merge pull request #71979 from kateinoigakukun/pr-cd8ba74ab4469e3c7607e61424497cc86fee8812
wasm: Add `pthread.h` to the WASI libc modulemap
2024-03-01 17:55:57 +09:00
Yuta Saito
e0131dc7dd wasm: Add pthread.h to the WASI libc modulemap
Recent wasi-libc has added `pthread.h` to its headers. This patch adds
it to the modulemap.
2024-02-29 17:59:24 +00:00
Saleem Abdulrasool
1845538c50 Windows: add WER module to WinSDK
This adds the Windows Error Reporting module to the WinSDK to make it
available to Swift.
2024-02-28 11:23:22 -08:00
Saleem Abdulrasool
2d72906b97 Windows: include SDDL conversion headers
This is allows us to use `ConvertSidToStringSidW`.
2024-02-12 14:37:37 -08:00
Kuba Mracek
dba8d5d3a0 Revert "Merge pull request #71278 from kubamracek/embedded-no-mach-defines"
This reverts commit 21eddf0b1a, reversing
changes made to e2d516f3c9.
2024-02-05 09:05:22 -08:00
Kuba Mracek
e22aedbcc3 [embedded] Implicitly define __APPLE__ and __MACH__ when on -apple-none triples 2024-01-31 09:22:31 -08:00
Max Desiatov
633d5bc45a Enable x86_64 and i686 ELF triples for embedded Swift (#70642)
This is just as useful for x86 bare metal as the already enabled `arm*-none-none-eabi` triples.
2024-01-26 21:39:17 +00:00
Kuba Mracek
bb1ba7c95c [embedded] Run DeadFunctionAndGlobalElimination after MandatoryPerformanceOptimizations 2023-12-09 22:39:55 -08:00
Kuba Mracek
2796e150fe [embedded] Disable building Darwin as embedded, unbreak the build and CI 2023-12-06 17:11:23 -08:00
Saleem Abdulrasool
203cace27f Platform: remove cplusplus requirement on XAudio29
The header is usable without C++ interop.  This should make it easier to
use the module in many cases.
2023-12-03 18:58:41 -08:00
Kuba Mracek
7c84cdb83f [embedded] Start installing embedded Concurrency and Darwin modules into the toolchain 2023-11-28 16:18:10 -08:00