diff options
author | Greg McGary <gkm@fb.com> | 2020-09-21 13:21:45 -0700 |
---|---|---|
committer | Greg McGary <gkm@fb.com> | 2020-09-22 08:03:44 -0700 |
commit | 7afbf3192dc5690285edbfb336c061a9d43e247e (patch) | |
tree | b78671b9b1e4a5de3ed449438fc6d7a6a252b1b2 /lld | |
parent | c671e34bf2ae0eaa78d214b849ddd5de30b3b5be (diff) | |
download | llvm-7afbf3192dc5690285edbfb336c061a9d43e247e.zip llvm-7afbf3192dc5690285edbfb336c061a9d43e247e.tar.gz llvm-7afbf3192dc5690285edbfb336c061a9d43e247e.tar.bz2 |
[lld-macho] minimally handle option -dynamic
Stifle the warning for unimplemented option `-dyamic`, since it is already the default. Add `Config::staticLink` and skeletal support for altering the flag, but otherwise leave the option `-static` as hidden and its warning in place.
Differential Revision: https://reviews.llvm.org/D88045
Diffstat (limited to 'lld')
-rw-r--r-- | lld/MachO/Config.h | 1 | ||||
-rw-r--r-- | lld/MachO/Driver.cpp | 4 | ||||
-rw-r--r-- | lld/MachO/Options.td | 1 |
3 files changed, 5 insertions, 1 deletions
diff --git a/lld/MachO/Config.h b/lld/MachO/Config.h index 5fbb477..47b4cb67 100644 --- a/lld/MachO/Config.h +++ b/lld/MachO/Config.h @@ -35,6 +35,7 @@ struct Configuration { bool hasReexports = false; bool allLoad = false; bool forceLoadObjC = false; + bool staticLink = false; uint32_t headerPad; llvm::StringRef installName; llvm::StringRef outputFile; diff --git a/lld/MachO/Driver.cpp b/lld/MachO/Driver.cpp index cda82ec..71af294 100644 --- a/lld/MachO/Driver.cpp +++ b/lld/MachO/Driver.cpp @@ -525,6 +525,9 @@ bool macho::link(llvm::ArrayRef<const char *> argsArr, bool canExitEarly, config->runtimePaths = args::getStrings(args, OPT_rpath); config->allLoad = args.hasArg(OPT_all_load); + if (const opt::Arg *arg = args.getLastArg(OPT_static, OPT_dynamic)) + config->staticLink = (arg->getOption().getID() == OPT_static); + std::vector<StringRef> &roots = config->systemLibraryRoots; for (const Arg *arg : args.filtered(OPT_syslibroot)) roots.push_back(arg->getValue()); @@ -603,6 +606,7 @@ bool macho::link(llvm::ArrayRef<const char *> argsArr, bool canExitEarly, case OPT_arch: case OPT_syslibroot: case OPT_sectcreate: + case OPT_dynamic: // handled elsewhere break; default: diff --git a/lld/MachO/Options.td b/lld/MachO/Options.td index e53c1bd..73e3ae8 100644 --- a/lld/MachO/Options.td +++ b/lld/MachO/Options.td @@ -37,7 +37,6 @@ def dylinker : Flag<["-"], "dylinker">, Group<grp_kind>; def dynamic : Flag<["-"], "dynamic">, HelpText<"Link dynamically (default)">, - Flags<[HelpHidden]>, Group<grp_kind>; def static : Flag<["-"], "static">, HelpText<"Link statically">, |