summaryrefslogtreecommitdiff
path: root/lld/MinGW
diff options
context:
space:
mode:
authorMartin Storsjö <martin@martin.st>2020-10-04 11:52:36 +0300
committerMartin Storsjö <martin@martin.st>2020-10-05 23:08:02 +0300
commitbc8f3b424c7785754c1de8a2f5a1e2c16a997143 (patch)
tree5f91c31eb5d96c208a43356d1ef75e77be6964d8 /lld/MinGW
parent45c4c54003641f2bb225eaf305c07906451d6096 (diff)
downloadllvm-bc8f3b424c7785754c1de8a2f5a1e2c16a997143.tar.gz
[LLD] [MinGW] Simplify handling of os/subsystem version
As they can be set independently after D88802, we can get rid of a bit of extra code - simplifying the logic here before adding more complication to it later. Differential Revision: https://reviews.llvm.org/D88803
Diffstat (limited to 'lld/MinGW')
-rw-r--r--lld/MinGW/Driver.cpp24
1 files changed, 6 insertions, 18 deletions
diff --git a/lld/MinGW/Driver.cpp b/lld/MinGW/Driver.cpp
index af7ecb8801e9..d976e4cc75fb 100644
--- a/lld/MinGW/Driver.cpp
+++ b/lld/MinGW/Driver.cpp
@@ -214,25 +214,13 @@ bool mingw::link(ArrayRef<const char *> argsArr, bool canExitEarly,
if (args.hasArg(OPT_major_os_version, OPT_minor_os_version,
OPT_major_subsystem_version, OPT_minor_subsystem_version)) {
- auto *majOSVer = args.getLastArg(OPT_major_os_version);
- auto *minOSVer = args.getLastArg(OPT_minor_os_version);
- auto *majSubSysVer = args.getLastArg(OPT_major_subsystem_version);
- auto *minSubSysVer = args.getLastArg(OPT_minor_subsystem_version);
- if (majOSVer && majSubSysVer &&
- StringRef(majOSVer->getValue()) != StringRef(majSubSysVer->getValue()))
- warn("--major-os-version and --major-subsystem-version set to differing "
- "versions, not supported");
- if (minOSVer && minSubSysVer &&
- StringRef(minOSVer->getValue()) != StringRef(minSubSysVer->getValue()))
- warn("--minor-os-version and --minor-subsystem-version set to differing "
- "versions, not supported");
+ StringRef majOSVer = args.getLastArgValue(OPT_major_os_version, "6");
+ StringRef minOSVer = args.getLastArgValue(OPT_minor_os_version, "0");
+ StringRef majSubSysVer = args.getLastArgValue(OPT_major_subsystem_version, "6");
+ StringRef minSubSysVer = args.getLastArgValue(OPT_minor_subsystem_version, "0");
StringRef subSys = args.getLastArgValue(OPT_subs, "default");
- StringRef major = majOSVer ? majOSVer->getValue()
- : majSubSysVer ? majSubSysVer->getValue() : "6";
- StringRef minor = minOSVer ? minOSVer->getValue()
- : minSubSysVer ? minSubSysVer->getValue() : "";
- StringRef sep = minor.empty() ? "" : ".";
- add("-subsystem:" + subSys + "," + major + sep + minor);
+ add("-osversion:" + majOSVer + "." + minOSVer);
+ add("-subsystem:" + subSys + "," + majSubSysVer + "." + minSubSysVer);
} else if (auto *a = args.getLastArg(OPT_subs)) {
add("-subsystem:" + StringRef(a->getValue()));
}