forked from OSchip/llvm-project
[ELF] - Set Config->SingleRoRx differently. NFC.
Previously Config->SingleRoRx was set in createFiles() and used HasSections. This change moves it to readConfigs at place of common flags handling, and adds logic that sets this flag separatelly from ScriptParser if SECTIONS present. llvm-svn: 288021
This commit is contained in:
parent
63bf011003
commit
18a3096282
|
@ -530,6 +530,7 @@ void LinkerDriver::readConfigs(opt::InputArgList &Args) {
|
|||
Config->PrintGcSections = Args.hasArg(OPT_print_gc_sections);
|
||||
Config->Relocatable = Args.hasArg(OPT_relocatable);
|
||||
Config->SaveTemps = Args.hasArg(OPT_save_temps);
|
||||
Config->SingleRoRx = Args.hasArg(OPT_no_rosegment);
|
||||
Config->Shared = Args.hasArg(OPT_shared);
|
||||
Config->Target1Rel = getArg(Args, OPT_target1_rel, OPT_target1_abs, false);
|
||||
Config->Threads = getArg(Args, OPT_threads, OPT_no_threads, true);
|
||||
|
@ -696,12 +697,6 @@ void LinkerDriver::createFiles(opt::InputArgList &Args) {
|
|||
}
|
||||
}
|
||||
|
||||
// -no-rosegment is used to avoid placing read only non-executable sections in
|
||||
// their own segment. We do the same if SECTIONS command is present in linker
|
||||
// script. See comment for computeFlags().
|
||||
Config->SingleRoRx =
|
||||
Args.hasArg(OPT_no_rosegment) || ScriptConfig->HasSections;
|
||||
|
||||
if (Files.empty() && ErrorCount == 0)
|
||||
error("no input files");
|
||||
}
|
||||
|
|
|
@ -1262,6 +1262,11 @@ void ScriptParser::readSearchDir() {
|
|||
|
||||
void ScriptParser::readSections() {
|
||||
Opt.HasSections = true;
|
||||
// -no-rosegment is used to avoid placing read only non-executable sections in
|
||||
// their own segment. We do the same if SECTIONS command is present in linker
|
||||
// script. See comment for computeFlags().
|
||||
Config->SingleRoRx = true;
|
||||
|
||||
expect("{");
|
||||
while (!Error && !consume("}")) {
|
||||
StringRef Tok = next();
|
||||
|
|
Loading…
Reference in New Issue