[PATCH] D88045: [lld-macho] minimally handle option -dynamic

Greg McGary via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 21 14:11:08 PDT 2020


gkm created this revision.
gkm added a reviewer: lld-macho.
Herald added subscribers: llvm-commits, dang.
Herald added a project: LLVM.
gkm requested review of this revision.

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.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D88045

Files:
  lld/MachO/Config.h
  lld/MachO/Driver.cpp
  lld/MachO/Options.td


Index: lld/MachO/Options.td
===================================================================
--- lld/MachO/Options.td
+++ lld/MachO/Options.td
@@ -37,7 +37,6 @@
      Group<grp_kind>;
 def dynamic : Flag<["-"], "dynamic">,
      HelpText<"Link dynamically (default)">,
-     Flags<[HelpHidden]>,
      Group<grp_kind>;
 def static : Flag<["-"], "static">,
      HelpText<"Link statically">,
Index: lld/MachO/Driver.cpp
===================================================================
--- lld/MachO/Driver.cpp
+++ lld/MachO/Driver.cpp
@@ -524,6 +524,8 @@
   config->outputType = args.hasArg(OPT_dylib) ? MH_DYLIB : MH_EXECUTE;
   config->runtimePaths = args::getStrings(args, OPT_rpath);
   config->allLoad = args.hasArg(OPT_all_load);
+  if (auto *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))
@@ -603,6 +605,7 @@
     case OPT_arch:
     case OPT_syslibroot:
     case OPT_sectcreate:
+    case OPT_dynamic:
       // handled elsewhere
       break;
     default:
Index: lld/MachO/Config.h
===================================================================
--- lld/MachO/Config.h
+++ lld/MachO/Config.h
@@ -35,6 +35,7 @@
   bool hasReexports = false;
   bool allLoad = false;
   bool forceLoadObjC = false;
+  bool staticLink = false;
   uint32_t headerPad;
   llvm::StringRef installName;
   llvm::StringRef outputFile;


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D88045.293250.patch
Type: text/x-patch
Size: 1520 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200921/1350eebc/attachment.bin>


More information about the llvm-commits mailing list