diff options
| -rw-r--r-- | lld/lib/Driver/GnuLdDriver.cpp | 10 | ||||
| -rw-r--r-- | lld/test/elf/allowduplicates.objtxt | 11 |
2 files changed, 17 insertions, 4 deletions
diff --git a/lld/lib/Driver/GnuLdDriver.cpp b/lld/lib/Driver/GnuLdDriver.cpp index 47312533837..9d380e83d66 100644 --- a/lld/lib/Driver/GnuLdDriver.cpp +++ b/lld/lib/Driver/GnuLdDriver.cpp @@ -440,6 +440,16 @@ bool GnuLdDriver::parse(int argc, const char *argv[], groupStack.pop(); break; + case OPT_z: { + StringRef extOpt = inputArg->getValue(); + if (extOpt == "muldefs") + ctx->setAllowDuplicates(true); + else + diagnostics << "warning: ignoring unknown argument for -z: " << extOpt + << "\n"; + break; + } + case OPT_INPUT: case OPT_l: { bool isDashlPrefix = (inputArg->getOption().getID() == OPT_l); diff --git a/lld/test/elf/allowduplicates.objtxt b/lld/test/elf/allowduplicates.objtxt index bb0d485b6bb..dbad3bd312e 100644 --- a/lld/test/elf/allowduplicates.objtxt +++ b/lld/test/elf/allowduplicates.objtxt @@ -1,8 +1,11 @@ -# RUN: lld -flavor gnu -target x86_64 --allow-multiple-definition -r %s \ -# RUN: --output-filetype=yaml | FileCheck %s +# RUN: lld -flavor gnu -target x86_64 --allow-multiple-definition %s \ +# RUN: --output-filetype=yaml --noinhibit-exec | FileCheck %s # -# RUN: not lld -flavor gnu -target x86_64 -r %s --output-filetype=yaml 2>&1 \ -# RUN: | FileCheck -check-prefix=ERROR %s +# RUN: not lld -flavor gnu -target x86_64 %s --output-filetype=yaml \ +# RUN: --noinhibit-exec 2>&1 | FileCheck -check-prefix=ERROR %s +# +# RUN: lld -flavor gnu -target x86_64 -z muldefs %s \ +# RUN: --noinhibit-exec --output-filetype=yaml | FileCheck %s --- defined-atoms: |

