Report error if -export-dynamic is used with -r

The combination of the two flags doesn't make sense. And other linkers
seem to just ignore --export-dynamic if --relocatable is given, but
we probably should report it as an error to let users know that is
an invalid combination.

Fixes https://bugs.llvm.org/show_bug.cgi?id=43552

Differential Revision: https://reviews.llvm.org/D68441

llvm-svn: 374022
This commit is contained in:
Rui Ueyama 2019-10-08 08:03:40 +00:00
parent 18b6fe07bc
commit 5493366729
3 changed files with 6 additions and 6 deletions

View File

@ -334,6 +334,8 @@ static void checkOptions() {
error("-r and --icf may not be used together");
if (config->pie)
error("-r and -pie may not be used together");
if (config->exportDynamic)
error("-r and --export-dynamic may not be used together");
}
if (config->executeOnly) {

View File

@ -72,6 +72,10 @@
# RUN: not ld.lld %t -z max-page-size 2>&1 | FileCheck -check-prefix=ERR11 %s
# ERR11: unknown -z value: max-page-size
## Attempt to use -r and --export-dynamic together
# RUN: not ld.lld -r -export-dynamic %t -o %tfail 2>&1 | FileCheck -check-prefix=ERR12 %s
# ERR12: -r and --export-dynamic may not be used together
.globl _start
_start:
nop

View File

@ -14,9 +14,6 @@
; RUN: ld.lld %t.o -o %t-out -save-temps --export-dynamic --noinhibit-exec
; RUN: llvm-readobj -r %t-out.lto.o | FileCheck %s --check-prefix=STATIC
; RUN: ld.lld %t.o -o %t-out -save-temps -r --export-dynamic
; RUN: llvm-readobj -r %t-out.lto.o | FileCheck %s --check-prefix=STATIC
;; PIC source.
@ -29,9 +26,6 @@
; RUN: ld.lld %t.pic.o -o %t-out -save-temps --export-dynamic --noinhibit-exec
; RUN: llvm-readobj -r %t-out.lto.o | FileCheck %s --check-prefix=STATIC
; RUN: ld.lld %t.pic.o -o %t-out -save-temps -r --export-dynamic
; RUN: llvm-readobj -r %t-out.lto.o | FileCheck %s --check-prefix=PIC
;; Explicit flag.