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 demangle;
|
||||
bool disableVerify;
|
||||
bool experimentalPic;
|
||||
bool emitRelocs;
|
||||
bool exportAll;
|
||||
bool exportDynamic;
|
||||
|
|
|
@ -332,6 +332,7 @@ static void readConfigs(opt::InputArgList &args) {
|
|||
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 @@ static void checkOptions(opt::InputArgList &args) {
|
|||
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.
|
||||
|
|
|
@ -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">;
|
||||
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">;
|
||||
|
|
Loading…
Reference in New Issue