diff options
| author | Koakuma <koachan@protonmail.com> | 2024-07-08 19:19:54 +0700 |
|---|---|---|
| committer | Koakuma <koachan@protonmail.com> | 2024-07-08 19:19:54 +0700 |
| commit | 5c4fdc2fd5898ebd9e89999a4f4b8aa289ca637f (patch) | |
| tree | f3b92a07f3dfc6e70f36d1000605f36a3c15af46 /lld/ELF/Driver.cpp | |
| parent | dbda8e2f2cd8764e0badd983915d62a2c3377f4d (diff) | |
| parent | e9b8cd0c806db00f0981fb36717077c941426302 (diff) | |
[𝘀𝗽𝗿] changes introduced through rebaseusers/koachan/spr/main.sparcias-enable-parseforallfeatures-in-matchoperandparserimpl
Created using spr 1.3.5
[skip ci]
Diffstat (limited to 'lld/ELF/Driver.cpp')
| -rw-r--r-- | lld/ELF/Driver.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/lld/ELF/Driver.cpp b/lld/ELF/Driver.cpp index ed214ab29d4c..ed773f5e69f7 100644 --- a/lld/ELF/Driver.cpp +++ b/lld/ELF/Driver.cpp @@ -324,7 +324,7 @@ void LinkerDriver::addFile(StringRef path, bool withLOption) { return; } case file_magic::elf_shared_object: { - if (config->isStatic || config->relocatable) { + if (config->isStatic) { error("attempted static link of dynamic object " + path); return; } @@ -1892,6 +1892,9 @@ void LinkerDriver::createFiles(opt::InputArgList &args) { // For --{push,pop}-state. std::vector<std::tuple<bool, bool, bool>> stack; + // -r implies -Bstatic and has precedence over -Bdynamic. + config->isStatic = config->relocatable; + // Iterate over argv to process input files and positional arguments. std::optional<MemoryBufferRef> defaultScript; InputFile::isInGroup = false; @@ -1946,7 +1949,8 @@ void LinkerDriver::createFiles(opt::InputArgList &args) { config->isStatic = true; break; case OPT_Bdynamic: - config->isStatic = false; + if (!config->relocatable) + config->isStatic = false; break; case OPT_whole_archive: inWholeArchive = true; |
