You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Make linkers that do not support multiple targets discoverable.
The link.exe cannot link for multiple architectures there
is a distinct link.exe for arm86 and x86_64.
The path to the specific linkers should not be added to the
global search path, as when building a target we do not know
the architecture until task creation time.
* Only add up until the Host[x86|arm]/bin directory to the
global search path.
* Let the LD spec determine the correct prefix directory
to find the proper link.exe
* Introduce two build settings
LD_MULTIARCH - A boolean indicator for multiple architecture support
LD_MULTIARCH_PREFIX_MAP - A prefix directory map from architecture:prefix
* Add in specfic tests for discoveredLdLinkerSpecInfo for each linkers
* Add x86_64 as a supported architecture for windows. A seperate PR
is inflight to add the true supported set.
// The ALTERNATE_LINKER is the 'name' of the linker not the executable name, clang will find the linker binary based on name passed via -fuse-ld, but we need to discover
1278
1277
// its properties by executing the actual binary. There is a common filename when the linker is not "ld" across all platforms using "ld.<ALTERNAME_LINKER>(.exe)"
1279
1278
// macOS (Xcode SDK)
@@ -1309,9 +1308,43 @@ public final class LdLinkerSpec : GenericLinkerSpec, SpecIdentifierType, @unchec
1309
1308
//
1310
1309
// Note: On Linux you cannot invoke the llvm linker by the direct name for determining the version,
0 commit comments