mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
Convert "armv7l" to "armv7" for the architecture component of paths (#2369)
On the Raspberry Pi 2 when trying to import Glibc, without this patch, it will attempt to find the module map at "/usr/lib/swift/linux/armv7l/glibc.modulemap" and fail to do so. With this patch it will attempt to find the module map at "/usr/lib/swift/linux/armv7/glibc.modulemap" where it will succeed in finding the module map. Similar behavior currently happens in the Driver and Frontend. To DRY up this behavior it has been extracted to the Swift platform.
This commit is contained in:
committed by
Jordan Rose
parent
06fe6b0424
commit
0c0bcbb094
@@ -48,27 +48,7 @@ static void updateRuntimeLibraryPath(SearchPathOptions &SearchPathOpts,
|
||||
llvm::sys::path::append(LibPath, getPlatformNameForTriple(Triple));
|
||||
SearchPathOpts.RuntimeLibraryPath = LibPath.str();
|
||||
|
||||
// The linux provided triple for ARM contains a trailing 'l'
|
||||
// denoting little-endian. This is not used in the path for
|
||||
// libraries. LLVM matches these SubArchTypes to the generic
|
||||
// ARMSubArch_v7 (for example) type. If that is the case,
|
||||
// use the base of the architecture type in the library path.
|
||||
if (Triple.isOSLinux()) {
|
||||
switch(Triple.getSubArch()) {
|
||||
default:
|
||||
llvm::sys::path::append(LibPath, Triple.getArchName());
|
||||
break;
|
||||
case llvm::Triple::SubArchType::ARMSubArch_v7:
|
||||
llvm::sys::path::append(LibPath, "armv7");
|
||||
break;
|
||||
case llvm::Triple::SubArchType::ARMSubArch_v6:
|
||||
llvm::sys::path::append(LibPath, "armv6");
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
llvm::sys::path::append(LibPath, Triple.getArchName());
|
||||
}
|
||||
|
||||
llvm::sys::path::append(LibPath, swift::getMajorArchitectureName(Triple));
|
||||
SearchPathOpts.RuntimeLibraryImportPath = LibPath.str();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user