forked from OSchip/llvm-project
[WebAssembly] Add warnings for -shared and -pie
The meaning of -shared and -pie are expected to be changed in the future when Module Linking-style libraries are implemented. Begin issuing warnings to give people a heads-up that they will be changing. For compatibility with Emscripten, add a --experimental-pic flag which disables these warnings. Differential Revision: https://reviews.llvm.org/D81760
This commit is contained in:
parent
b9a539c010
commit
46a3268312
|
@ -27,6 +27,7 @@ struct Configuration {
|
||||||
bool compressRelocations;
|
bool compressRelocations;
|
||||||
bool demangle;
|
bool demangle;
|
||||||
bool disableVerify;
|
bool disableVerify;
|
||||||
|
bool experimentalPic;
|
||||||
bool emitRelocs;
|
bool emitRelocs;
|
||||||
bool exportAll;
|
bool exportAll;
|
||||||
bool exportDynamic;
|
bool exportDynamic;
|
||||||
|
|
|
@ -332,6 +332,7 @@ static void readConfigs(opt::InputArgList &args) {
|
||||||
config->demangle = args.hasFlag(OPT_demangle, OPT_no_demangle, true);
|
config->demangle = args.hasFlag(OPT_demangle, OPT_no_demangle, true);
|
||||||
config->disableVerify = args.hasArg(OPT_disable_verify);
|
config->disableVerify = args.hasArg(OPT_disable_verify);
|
||||||
config->emitRelocs = args.hasArg(OPT_emit_relocs);
|
config->emitRelocs = args.hasArg(OPT_emit_relocs);
|
||||||
|
config->experimentalPic = args.hasArg(OPT_experimental_pic);
|
||||||
config->entry = getEntry(args);
|
config->entry = getEntry(args);
|
||||||
config->exportAll = args.hasArg(OPT_export_all);
|
config->exportAll = args.hasArg(OPT_export_all);
|
||||||
config->exportTable = args.hasArg(OPT_export_table);
|
config->exportTable = args.hasArg(OPT_export_table);
|
||||||
|
@ -468,6 +469,23 @@ static void checkOptions(opt::InputArgList &args) {
|
||||||
if (config->sharedMemory)
|
if (config->sharedMemory)
|
||||||
error("-r and --shared-memory may not be used together");
|
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.
|
// Force Sym to be entered in the output. Used for -u or equivalent.
|
||||||
|
|
|
@ -200,3 +200,7 @@ def thinlto_cache_dir: J<"thinlto-cache-dir=">,
|
||||||
defm thinlto_cache_policy: Eq<"thinlto-cache-policy", "Pruning policy for the ThinLTO cache">;
|
defm thinlto_cache_policy: Eq<"thinlto-cache-policy", "Pruning policy for the ThinLTO cache">;
|
||||||
def thinlto_jobs: J<"thinlto-jobs=">,
|
def thinlto_jobs: J<"thinlto-jobs=">,
|
||||||
HelpText<"Number of ThinLTO jobs. Default to --threads=">;
|
HelpText<"Number of ThinLTO jobs. Default to --threads=">;
|
||||||
|
|
||||||
|
// Experimental PIC mode.
|
||||||
|
def experimental_pic: F<"experimental-pic">,
|
||||||
|
HelpText<"Enable Experimental PIC">;
|
||||||
|
|
Loading…
Reference in New Issue