Commit Graph

23 Commits

Author SHA1 Message Date
Yuta Saito
cd1db4a575 [autolink-extract] Update deduplication list for new Foundation, Testing, and WASI platform
We now have several new runtime libraries in the toolchain but they are
not listed in the autolink deduplication list. This can lead to an excessive
memory footprint when linking on platforms that use autolink-extract.

See https://github.com/swiftlang/swift/issues/58380
2025-10-09 06:57:48 +00:00
Anthony Latsis
a84dfc8387 [Gardening] Fix some set but not used variables 2025-01-30 21:34:38 +00:00
Alastair Houghton
760cc57bef [Backtracing] Rename _Backtracing to Runtime.
Move the backtracing code into a new Runtime module.  This means renaming
the Swift Runtime's CMake target because otherwise there will be a name
clash.

rdar://124913332
2025-01-17 10:09:36 +00:00
Finagolfin
22833fbc54 [android] Update to LTS NDK 27c
Add a new bits/ header to the Android overlay, include runtime libraries that are
auto-extracted and listed many times to the list of libraries to be de-duplicated,
enable a C++ interop test that's working again, and update the doc with new
libraries that need to be available to run a simple executable.
2024-11-14 00:11:53 +05:30
finagolfin
8fe0fd1781 Update list of Swift runtime libraries to be de-duplicated, so the autolink-extract tool doesn't repeat them over and over again (#76224) 2024-09-16 16:36:05 -07:00
Jeremy Schonfeld
c069bd63dc Add new Foundation libraries to SwiftRuntimeLibsOrdered (#76019) 2024-09-03 09:07:03 -07:00
Daniel Rodríguez Troitiño
b43d01ff7f [autolink-extract] Support (and ignore) LLVM IR files. (#71142)
In Linux, the current implementation of swift-autolink-extract does not
support LLVM IR files resulting from using LTO.

If one tries to build LLVM using LTO and then try to link one of the
targets that use `swiftc` to link, but link against LLVM object files
(like `swift-plugin-server`), `swift-autolink-extract` will fail saying
that some object files are not valid.

To deal with LLVM IR files correctly, create and pass
a `llvm::LLVMContext` around, which allows the APIs in `llvm::object` to
read LLVM IR files. Additionally, handle the case of `IRObjectFile` when
extracting, but perform no action.
2024-01-31 11:01:39 -08:00
Yuta Saito
18923c3b70 [wasm] Read autolink entries from custom section instead of data segments
This change is required since
d0f00c4d76
and we no longer need wasm custom implementation.
2023-05-15 10:02:12 +00:00
Gwynne Raskind
10af912c49 Whoops. El smarty-pants over here forgot to put XCTest back where it goes after fixing ordering 2023-03-14 11:58:46 -05:00
Gwynne Raskind
f5e5c8cc5f Okay, let's try actually having an ordering if we're trying to use an ordering 2023-03-13 20:12:43 -05:00
Gwynne Raskind
32d1a2f52c Update autolink_extract_main.cpp 2023-03-13 18:39:01 -05:00
Gwynne Raskind
207ceae94b Workaround for XCTest buildsystem rpath bug 2023-03-13 16:55:14 -05:00
Gwynne Raskind
009ee7efb7 Address PR feedback 2023-03-13 09:29:21 -05:00
Gwynne Raskind
b466f317f4 Add the remaining toolchain-distributed runtime libs to autolink-extract deduplication 2023-03-12 20:31:18 -05:00
Alastair Houghton
44783e72c6 [Frontend] Add support for implicit import of _Backtracing
Once the API has gone through Swift Evolution, we will want to implicitly
import the _Backtracing module.  Add code to do that, but set it to off
by default for now.

rdar://105394140
2023-03-04 08:00:06 +00:00
Artem Chikin
a69ba3a03c [Autolink Extract] Filter out StringProcessing library from being linked more than once.
We cannot filter all libraries because duplicate -l flags have a semantic meaning based on their order, but filtering out just the common Swift libraries should yield a good size improvement already and is safe.
2022-11-29 15:44:29 -08:00
Artem Chikin
3d30527529 [Autolink Extract] Filter out common Swift libraries from being linked more than once
A partial solution to #58380
2022-05-25 15:18:37 -07:00
Artem Chikin
3e8a115195 Revert "[Autolink Extract] Keep a set of linker flags instead of vector" 2022-05-23 16:03:09 -07:00
Artem Chikin
10a187d2ad [Autolink Extract] Keep a set of linker flags instead of vector
Otherwise we can duplicate linker flags across input binaries, which can result in very large linkerr invocation commands.

Resolves https://github.com/apple/swift/issues/58380
2022-05-20 15:18:43 -07:00
swift-ci
c51550f30e Merge remote-tracking branch 'origin/main' into rebranch 2021-09-30 15:11:41 -07:00
Max Desiatov
c52f37c500 DriverTool: add support for WebAssembly autolink entries (#39502)
This change adds support for `.swift1_autolink_entries` in WebAssembly object files to `lib/DriverTool/autolink_extract_main.cpp`. This is implemented in a similar way to existing ELF autolink entries handling.
2021-09-29 16:39:34 +01:00
swift-ci
97cfa6b6f8 Merge remote-tracking branch 'origin/main' into rebranch 2021-07-13 13:52:43 -07:00
Xi Ge
515cf21ba3 driver: refactor driver tool logics into a library. NFC 2021-07-13 10:03:12 -07:00