diff options
| author | Shankar Easwaran <shankare@codeaurora.org> | 2013-06-16 05:06:28 +0000 |
|---|---|---|
| committer | Shankar Easwaran <shankare@codeaurora.org> | 2013-06-16 05:06:28 +0000 |
| commit | a42a4738935cd56c2426162f3f744dad1efa20da (patch) | |
| tree | e8f56bed7be2dd8664e4312b096cf131e19b6006 /lld/lib/Driver/GnuLdDriver.cpp | |
| parent | 089ee1554c74f12bba8dddcf14cb62feeab6a08b (diff) | |
| download | bcm5719-llvm-a42a4738935cd56c2426162f3f744dad1efa20da.tar.gz bcm5719-llvm-a42a4738935cd56c2426162f3f744dad1efa20da.zip | |
[ELF] add NMAGIC/OMAGIC support
llvm-svn: 184055
Diffstat (limited to 'lld/lib/Driver/GnuLdDriver.cpp')
| -rw-r--r-- | lld/lib/Driver/GnuLdDriver.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/lld/lib/Driver/GnuLdDriver.cpp b/lld/lib/Driver/GnuLdDriver.cpp index 25ac09343a2..57ee99b0fc2 100644 --- a/lld/lib/Driver/GnuLdDriver.cpp +++ b/lld/lib/Driver/GnuLdDriver.cpp @@ -198,6 +198,25 @@ GnuLdDriver::parse(int argc, const char *argv[], raw_ostream &diagnostics) { parsedArgs->getLastArg(OPT_dynamic_linker)) options->setInterpreter(dynamicLinker->getValue()); + // Handle NMAGIC + if (parsedArgs->getLastArg(OPT_nmagic)) + options->setOutputMagic(ELFTargetInfo::OutputMagic::NMAGIC); + + // Handle OMAGIC + if (parsedArgs->getLastArg(OPT_omagic)) + options->setOutputMagic(ELFTargetInfo::OutputMagic::OMAGIC); + + // Handle --no-omagic + if (parsedArgs->getLastArg(OPT_no_omagic)) { + options->setOutputMagic(ELFTargetInfo::OutputMagic::DEFAULT); + options->setNoAllowDynamicLibraries(); + } + + // If either of the options NMAGIC/OMAGIC have been set, make the executable + // static + if (!options->allowLinkWithDynamicLibraries()) + options->setIsStaticExecutable(true); + // Handle -Lxxx for (llvm::opt::arg_iterator it = parsedArgs->filtered_begin(OPT_L), ie = parsedArgs->filtered_end(); |

