[PATCH] D81760: [WebAssembly] Add warnings for -shared and -pie
sunfishcode via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Jun 25 16:24:12 PDT 2020
This revision was automatically updated to reflect the committed changes.
Closed by commit rG46a32683123a: [WebAssembly] Add warnings for -shared and -pie (authored by sunfishcode).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D81760/new/
https://reviews.llvm.org/D81760
Files:
lld/wasm/Config.h
lld/wasm/Driver.cpp
lld/wasm/Options.td
Index: lld/wasm/Options.td
===================================================================
--- lld/wasm/Options.td
+++ lld/wasm/Options.td
@@ -200,3 +200,7 @@
defm thinlto_cache_policy: Eq<"thinlto-cache-policy", "Pruning policy for the ThinLTO cache">;
def thinlto_jobs: J<"thinlto-jobs=">,
HelpText<"Number of ThinLTO jobs. Default to --threads=">;
+
+// Experimental PIC mode.
+def experimental_pic: F<"experimental-pic">,
+ HelpText<"Enable Experimental PIC">;
Index: lld/wasm/Driver.cpp
===================================================================
--- lld/wasm/Driver.cpp
+++ lld/wasm/Driver.cpp
@@ -332,6 +332,7 @@
config->demangle = args.hasFlag(OPT_demangle, OPT_no_demangle, true);
config->disableVerify = args.hasArg(OPT_disable_verify);
config->emitRelocs = args.hasArg(OPT_emit_relocs);
+ config->experimentalPic = args.hasArg(OPT_experimental_pic);
config->entry = getEntry(args);
config->exportAll = args.hasArg(OPT_export_all);
config->exportTable = args.hasArg(OPT_export_table);
@@ -468,6 +469,23 @@
if (config->sharedMemory)
error("-r and --shared-memory may not be used together");
}
+
+ // To begin to prepare for Module Linking-style shared libraries, start
+ // warning about uses of `-shared` and related flags outside of Experimental
+ // mode, to give anyone using them a heads-up that they will be changing.
+ //
+ // Also, warn about flags which request explicit exports.
+ if (!config->experimentalPic) {
+ // -shared will change meaning when Module Linking is implemented.
+ if (config->shared) {
+ warn("creating shared libraries, with -shared, is not yet stable");
+ }
+
+ // -pie will change meaning when Module Linking is implemented.
+ if (config->pie) {
+ warn("creating PIEs, with -pie, is not yet stable");
+ }
+ }
}
// Force Sym to be entered in the output. Used for -u or equivalent.
Index: lld/wasm/Config.h
===================================================================
--- lld/wasm/Config.h
+++ lld/wasm/Config.h
@@ -27,6 +27,7 @@
bool compressRelocations;
bool demangle;
bool disableVerify;
+ bool experimentalPic;
bool emitRelocs;
bool exportAll;
bool exportDynamic;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D81760.273547.patch
Type: text/x-patch
Size: 2225 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200625/dcfee5b9/attachment.bin>
More information about the llvm-commits
mailing list