diff options
| -rw-r--r-- | lld/ELF/Driver.cpp | 7 | ||||
| -rw-r--r-- | lld/ELF/LinkerScript.cpp | 5 |
2 files changed, 6 insertions, 6 deletions
diff --git a/lld/ELF/Driver.cpp b/lld/ELF/Driver.cpp index f603d5d7335..ab3b77fc2bf 100644 --- a/lld/ELF/Driver.cpp +++ b/lld/ELF/Driver.cpp @@ -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"); } diff --git a/lld/ELF/LinkerScript.cpp b/lld/ELF/LinkerScript.cpp index 07497f4fcc4..51689c2b011 100644 --- a/lld/ELF/LinkerScript.cpp +++ b/lld/ELF/LinkerScript.cpp @@ -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(); |

