Skip to content

Commit e7b3fd9

Browse files
author
git apple-llvm automerger
committed
Merge commit '1322305e1787' from apple/stable/20200714 into swift/main
2 parents bb018f4 + 1322305 commit e7b3fd9

File tree

1 file changed

+47
-27
lines changed

1 file changed

+47
-27
lines changed

lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp

Lines changed: 47 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1477,25 +1477,20 @@ void PlatformDarwin::AddClangModuleCompilationOptionsForSDKType(
14771477

14781478
StreamString minimum_version_option;
14791479
bool use_current_os_version = false;
1480+
// If the SDK type is for the host OS, use its version number.
1481+
auto get_host_os = []() { return HostInfo::GetTargetTriple().getOS(); };
14801482
switch (sdk_type) {
1483+
case XcodeSDK::Type::MacOSX:
1484+
use_current_os_version = get_host_os() == llvm::Triple::MacOSX;
1485+
break;
14811486
case XcodeSDK::Type::iPhoneOS:
1482-
#if defined(__arm__) || defined(__arm64__) || defined(__aarch64__)
1483-
use_current_os_version = true;
1484-
#else
1485-
use_current_os_version = false;
1486-
#endif
1487+
use_current_os_version = get_host_os() == llvm::Triple::IOS;
14871488
break;
1488-
1489-
case XcodeSDK::Type::iPhoneSimulator:
1490-
use_current_os_version = false;
1489+
case XcodeSDK::Type::AppleTVOS:
1490+
use_current_os_version = get_host_os() == llvm::Triple::TvOS;
14911491
break;
1492-
1493-
case XcodeSDK::Type::MacOSX:
1494-
#if defined(__i386__) || defined(__x86_64__)
1495-
use_current_os_version = true;
1496-
#else
1497-
use_current_os_version = false;
1498-
#endif
1492+
case XcodeSDK::Type::watchOS:
1493+
use_current_os_version = get_host_os() == llvm::Triple::WatchOS;
14991494
break;
15001495
default:
15011496
break;
@@ -1515,24 +1510,49 @@ void PlatformDarwin::AddClangModuleCompilationOptionsForSDKType(
15151510
}
15161511
}
15171512
// Only add the version-min options if we got a version from somewhere
1518-
if (!version.empty()) {
1513+
if (!version.empty() && sdk_type != XcodeSDK::Type::Linux) {
1514+
#define OPTION(PREFIX, NAME, VAR, ...) \
1515+
const char *opt_##VAR = NAME; \
1516+
(void)opt_##VAR;
1517+
#include "clang/Driver/Options.inc"
1518+
#undef OPTION
1519+
minimum_version_option << '-';
15191520
switch (sdk_type) {
1520-
case XcodeSDK::Type::iPhoneOS:
1521-
minimum_version_option.PutCString("-mios-version-min=");
1522-
minimum_version_option.PutCString(version.getAsString());
1521+
case XcodeSDK::Type::MacOSX:
1522+
minimum_version_option << opt_mmacosx_version_min_EQ;
15231523
break;
15241524
case XcodeSDK::Type::iPhoneSimulator:
1525-
minimum_version_option.PutCString("-mios-simulator-version-min=");
1526-
minimum_version_option.PutCString(version.getAsString());
1525+
minimum_version_option << opt_mios_simulator_version_min_EQ;
15271526
break;
1528-
case XcodeSDK::Type::MacOSX:
1529-
minimum_version_option.PutCString("-mmacosx-version-min=");
1530-
minimum_version_option.PutCString(version.getAsString());
1527+
case XcodeSDK::Type::iPhoneOS:
1528+
minimum_version_option << opt_mios_version_min_EQ;
15311529
break;
1532-
default:
1533-
llvm_unreachable("unsupported sdk");
1530+
case XcodeSDK::Type::AppleTVSimulator:
1531+
minimum_version_option << opt_mtvos_simulator_version_min_EQ;
1532+
break;
1533+
case XcodeSDK::Type::AppleTVOS:
1534+
minimum_version_option << opt_mtvos_version_min_EQ;
1535+
break;
1536+
case XcodeSDK::Type::WatchSimulator:
1537+
minimum_version_option << opt_mwatchos_simulator_version_min_EQ;
1538+
break;
1539+
case XcodeSDK::Type::watchOS:
1540+
minimum_version_option << opt_mwatchos_version_min_EQ;
1541+
break;
1542+
case XcodeSDK::Type::bridgeOS:
1543+
case XcodeSDK::Type::Linux:
1544+
case XcodeSDK::Type::unknown:
1545+
if (lldb_private::GetLogIfAllCategoriesSet(LIBLLDB_LOG_HOST)) {
1546+
XcodeSDK::Info info;
1547+
info.type = sdk_type;
1548+
LLDB_LOGF(lldb_private::GetLogIfAllCategoriesSet(LIBLLDB_LOG_HOST),
1549+
"Clang modules on %s are not supported",
1550+
XcodeSDK::GetCanonicalName(info).c_str());
1551+
}
1552+
return;
15341553
}
1535-
options.push_back(std::string(minimum_version_option.GetString()));
1554+
minimum_version_option << version.getAsString();
1555+
options.emplace_back(std::string(minimum_version_option.GetString()));
15361556
}
15371557

15381558
FileSpec sysroot_spec;

0 commit comments

Comments
 (0)