Commit Graph

272 Commits

Author SHA1 Message Date
Kavon Farvardin
8624643fc4 when building the swift libs, do not automatically import _Concurrency
This fixes issues when building Swift with concurrency enabled by default. See rdar://71045297

If some of our overlays need to use the concurrency API, they can manually import _Concurrency.
2020-11-06 11:58:50 -08:00
Eric Miotto
c813732676 Pass include paths when emitting macOS swiftmodule for zippered libraries (#34547)
This matches the behaviour for emitting macCatalyst swiftmodules and should avoid preferring dependencies from the SDK instead of just built ones.

Addresses rdar://70682224
2020-11-04 11:16:04 -08:00
Kuba (Brecka) Mracek
d7dfa3e942 Bring up tests + validation tests for the 'freestanding' build and the standalone_minimal preset (#34386) 2020-10-26 16:32:36 -07:00
Butta
69d04aad08 [linux] remove absolute rpath of /usr/lib/swift/linux added to many shared libraries
This was presumably added as a backup, in case the libraries in a toolchain
couldn't be found, but will not work well, so take it out.
2020-09-25 23:07:14 +05:30
Kuba (Brecka) Mracek
e6da0c2eea Make MinSizeRel builds of stdlib (but not the compiler) produce debug info (#33787) 2020-09-24 09:26:39 -07:00
Kuba (Brecka) Mracek
58f2ae695b Add a SWIFT_STDLIB_STABLE_ABI flag to be able to build the stdlib without -enable-library-evolution (#33443) 2020-09-21 16:33:00 -07:00
Saleem Abdulrasool
b0a13e7e55 build: repair cross-compilation for Windows after #33908
`CMAKE_SYSTEM_NAME` specifies the host, not the build.  Use the correct
executable extension for the host.
2020-09-16 09:56:03 -07:00
Robert Widmann
399b190ea9 Merge pull request #33908 from stevapple/check-windows
[test] Fix line-directive on Windows
2020-09-15 18:56:00 -06:00
Saleem Abdulrasool
af868e5c8f build: migrate towards the unified directory layout for modules
This changes the install layout to be similar across Darwin and
non-Darwin platforms.  This will enable simplifying the user experience,
build infrastructure, and the driver as the SDK layout converges towards
a single layout on all the platforms.
2020-09-13 17:46:54 -07:00
Kuba (Brecka) Mracek
d9d929a594 Revert "Start using optimization (-O0/-O2/-O3/-Os) and debug (-g) flags from CMAKE_CXX_FLAGS_${CFLAGS_BUILD_TYPE} (#33388)" (#33924) 2020-09-11 21:06:05 -07:00
stevapple
fa6a8eceff [test] Fix line-directive on Windows 2020-09-12 00:55:03 +08:00
Kuba (Brecka) Mracek
aa0f8e670b Add a SWIFT_STDLIB_OS_VERSIONING flag to avoid querying OS version at runtime, use it in the freestanding build (#33791) 2020-09-11 08:09:14 -07:00
Kuba (Brecka) Mracek
b5252eb0e3 Fix incorrect build type regression from ef89b0dc51 (#33894) 2020-09-10 17:25:37 -07:00
Kuba (Brecka) Mracek
7f26d97746 Don't use resilient getter for playgroundPrintHook when resilience is off (#33848) 2020-09-10 14:06:58 -07:00
Kuba (Brecka) Mracek
9de7b59388 Subsume SWIFT_STDLIB_USE_NONATOMIC_RC into SWIFT_STDLIB_SINGLE_THREADED_RUNTIME (#33643) 2020-08-26 21:28:30 -07:00
Kuba (Brecka) Mracek
9ead8d57fa Add a single-threaded stdlib mode, use it for the 'minimal' stdlib (#33437) 2020-08-25 06:03:14 -07:00
Kuba (Brecka) Mracek
db18deaf91 Add a SWIFT_RUNTIME_MACHO_NO_DYLD stdlib mode that doesn't dynamically look up sections in modules, and only assumes a single static module (#33441) 2020-08-18 11:46:42 -07:00
Kuba (Brecka) Mracek
28a2826ef4 Start using optimization (-O0/-O2/-O3/-Os) and debug (-g) flags from CMAKE_CXX_FLAGS_${CFLAGS_BUILD_TYPE} (#33388) 2020-08-17 19:26:24 -07:00
Kuba (Brecka) Mracek
925835f158 NFC: Use SWIFT_APPLE_PLATFORMS and remove is_darwin_based_sdk 2020-08-14 21:04:02 -07:00
Kuba (Brecka) Mracek
aa924196ff Add a flag to build the stdlib without COMPATIBILITY_OVERRIDE (#33438) 2020-08-14 17:06:38 -07:00
Kuba (Brecka) Mracek
11c9184c6c Use SWIFT_SDK_${sdk}_OBJECT_FORMAT to choose whether to use lipo and multi-arch builds 2020-08-14 17:05:51 -07:00
Kuba (Brecka) Mracek
f91fe9c0c1 Use SWIFT_SDK_${prefix}_USE_ISYSROOT to select which SDKs should be building with -isysroot (#33469) 2020-08-14 14:33:28 -07:00
Kuba (Brecka) Mracek
e2e69578a6 For the 'minimal' stdlib, disable Objective-C interop (#33427) 2020-08-13 15:26:04 -07:00
Kuba (Brecka) Mracek
ef89b0dc51 Add a 'standalone_minimal' preset to build a minimal, static, OS independent, self-contained binaries of stdlib. (#33286) 2020-08-12 07:28:34 -07:00
Dario Rexin
7e60a73335 Merge pull request #33168 from drexin/wip-fix-resource-folder
Properly compute resource folder when linking statically
2020-08-04 12:52:38 -07:00
Kuba (Brecka) Mracek
c6ea30c963 Instead of random file name, use a hash as a deterministic name for Swift source file list in _compile_swift_files (#33190) 2020-08-03 10:33:00 -07:00
Dario Rexin
0850436d9f Properly compute resource folder when linking statically
- deduplicate the logic to compute the resource folder
- install headers and module files in shared and static resource folders
- forward -static flag when calling swiftc with -print-target-info
2020-07-30 15:07:03 -07:00
Michael Gottesman
2ea7cd2b87 [cmake] Generate opt-remark bitstream files for the stdlib. 2020-07-18 20:19:27 -07:00
Eric Miotto
e497089d88 [build] don't embed bitcode for target libs built for simulators (#32871)
At the same time rework condition so that it is more amenable to code
searches.

Addresses rdar://65501878
2020-07-14 11:37:46 -07:00
Saleem Abdulrasool
46c4c2bf72 Merge pull request #30733 from allevato/rt-inline-ns
Wrap (de)mangling namespaces in an inline namespace.
2020-06-24 08:34:53 -07:00
Doug Gregor
f71f6207b5 [CMake] Make swift-frontend the primary Swift binary.
Build swift-frontend as the primary Swift binary, and have
swift/swiftc/etc. symlink over to it. This is a step toward allowing
swift-driver to replace the swift and swiftc binaries.
2020-06-23 13:00:26 -07:00
Mishal Shah
272c466e47 Update master to build with Xcode 12 beta 2020-06-22 15:43:20 -07:00
Tony Allevato
5b1daa9055 Conditionally wrap (de)mangling symbols in an inline namespace.
Since libDemangling is included in the Swift standard library,
ODR violations can occur on platforms that allow statically
linking stdlib if Swift code is linked with other compiler
libraries that also transitively pull in libDemangling, and if
the stdlib version and compiler version do not match exactly
(even down to commit drift between releases). This lets the
runtime conditionally segregate its copies of the libDemangling
symbols from those in the compiler using an inline namespace
without affecting usage throughout source.
2020-06-19 11:20:56 -07:00
Michael Gottesman
46432404f3 [ownership] Remove dead option: enable-ownership-stripping-after-serialization.
We always lower ownership now after the diagnostic passes (what this option
actually controlled). So remove it.

NFC.
2020-06-16 10:52:02 -07:00
Saleem Abdulrasool
e9548b019b Merge pull request #32182 from compnerd/uniformity
build: use the same pattern for detecting Darwin platforms
2020-06-04 13:43:58 -07:00
Saleem Abdulrasool
f9128bac81 build: use the same pattern for detecting Darwin platforms
The host platform should be using `CMAKE_SYSTEM_NAME STREQUAL Darwin`.
However, we currently drive the host side of the compilation against
custom variables.  This makes the migration simpler by ensuring that the
entire file uses the same pattern.

Since `is_darwin_based_sdk` is now used only in the standard library
build, sink it to the standard library build.
2020-06-04 08:39:59 -07:00
3405691582
9a93b61f67 [stdlib][cmake] OpenBSD target requires -lpthread.
Like FreeBSD, OpenBSD needs -lpthread for a target link. This is
necessary to get the swift-reflection-test to link and build correctly.
2020-06-03 20:18:19 -04:00
David Zarzycki
3767ece85c [CMake] Simplify two binary variables into one tri-state variable
Also remove some ancient logic to detect and ignore requests to use LLD.
If people want to explicitly use LLD, they probably have a reason and we
shouldn't second guess them.
2020-05-28 06:08:03 -04:00
Saleem Abdulrasool
4c115e1484 build: cleanup some unnecessary settings for Windows
Windows had moved to C++14 much earlier than the rest of Swift.  This
was required in order to deal with the Windows SDK headers.  Now that
the project has fully moved to C++14, remove the unnecessary settings
for Windows.
2020-05-23 11:21:10 -07:00
Saleem Abdulrasool
3fa1d1fe3f runtime: ingest LLVMSupport into the runtime
This adds a new copy of LLVMSupport into the runtime.  This is the final
step before changing the inline namespace for the runtime support.  This
will allow us to avoid the ODR violations from the header definitions of
LLVMSupport.

LLVMSupport forked at: 22492eead218ec91d349c8c50439880fbeacf2b7
Changes made to LLVMSupport from that revision:
  process.inc forward declares `_beginthreadex` due to compilation issues due to custom flag handling

API changes required that we alter the `Deallocate` routine to account
for the alignment.

This is a temporary state, meant to simplify the process.  We do not use
the entire LLVMSupport library and there is no value in keeping the
entire library.  Subsequent commits will prune the library to the needs
for the runtime.
2020-05-15 09:55:36 -07:00
Max Desiatov
762079665e Add support for WebAssembly/WASI in CMake files 2020-05-10 11:32:04 +01:00
David Zarzycki
5dcc32f98f Remove all uses of -force-single-frontend-invocation
The `-force-single-frontend-invocation` flag predates WMO and is now an
alias for `-whole-module-optimization`. We should use the latter and let
the former fade into history.
2020-05-08 06:37:41 -04:00
Saleem Abdulrasool
923def217f Merge pull request #31544 from compnerd/runtime-defines
build: avoid redundant flag specification
2020-05-06 14:05:19 -07:00
Saleem Abdulrasool
a994d65b3e build: remove LLVM_LINK_COMPONENTS in the standard library (NFC)
The standard library does not use the LLVM components.  Remove the
unused parameter support.
2020-05-06 08:33:53 -07:00
Saleem Abdulrasool
198d091efe build: avoid redundant flag specification
Remove the flag being specified in multiple locations unnecessarily.
The flags flow downwards to all the subdirectories.  Use that to apply
the C/C++ flags from the root of the runtime repository.
2020-05-04 14:27:22 -07:00
Dario Rexin
6290d8c28d Merge pull request #31125 from compnerd/opt-flags
optimize flag computation
2020-05-01 10:16:34 -07:00
Brent Royal-Gordon
02d5e6650f Fix module triples for “ios-like” Mac Catalyst modules
The “ios-like” build flavor is used to build modules that do not exist on macOS for Mac Catalyst. Even though they are built for the “OSX” SDK, they need to have a “MACCATALYST”-style module triple; unfortunately, the transition to naming swiftmodules by module triple in #31170 did not handle this edge case correctly.

This commit handles that by piggybacking on a similar special case used to change the lib/swift subdirectory.
2020-04-28 18:39:30 -07:00
Doug Gregor
94e9153878 Merge pull request #31170 from DougGregor/build-module-triples
[CMake] Use proper module triples for the names of standard library modules
2020-04-23 23:57:50 -07:00
Doug Gregor
b27b4d4bb6 [CMake] Use proper module triples for the names of standard library modules.
The standard library (and other Swift modules built by our CMake build system)
has been building module files with an architecture only (e.g., x86_64.swiftmodule)
rather than a proper module triple (x86_86-apple-macosx10.15,
x86_64-apple-ios13.0-simulator, etc.), unlike every other build
system. There are hacks in the compiler and other tools to cope with
this unnecessary build difference. Fix the module file names so we'll
be able to remove the hacks later.

Fixes rdar://problem/49071536.
2020-04-20 21:16:14 -07:00
Saleem Abdulrasool
82cdf91512 Merge pull request #31033 from 3405691582/OpenBSD_Port_BuildfixDifferentiation
[stdlib] Buildfix differentiation for OpenBSD.
2020-04-20 08:12:50 -07:00