From fcdf7578aa697526e5eee05fb0e5390c4ef02eb9 Mon Sep 17 00:00:00 2001 From: Saleem Abdulrasool Date: Fri, 5 Jun 2020 19:54:58 -0700 Subject: [PATCH] lld: improve the `-arch` handling for MachO Use the default target triple configured by the user to determine the default architecture for `ld64.lld`. Stash the architecture in the configuration as when linking against TBDs, we will need to filter out the symbols based upon the architecture. Treat the Haswell slice as it is equivalent to `x86_64` but with the extra Haswell extensions (e.g. AVX2, FMA3, BMI1, etc). This will make it easier to add new architectures in the future. This change also changes the failure mode where an invalid `-arch` parameter will result in the linker exiting without further processing. --- lld/MachO/Config.h | 2 + lld/MachO/Driver.cpp | 15 ++++-- lld/test/MachO/archive.s | 4 +- lld/test/MachO/dylib.s | 4 +- lld/test/MachO/dylink-lazy.s | 6 +-- lld/test/MachO/dylink.s | 6 +-- lld/test/MachO/entry-symbol.s | 6 +-- lld/test/MachO/export-trie.s | 2 +- lld/test/MachO/invalid/alignment-too-large.yaml | 2 +- lld/test/MachO/invalid/archive-no-index.s | 2 +- lld/test/MachO/invalid/bad-archive.s | 2 +- lld/test/MachO/invalid/duplicate-symbol.s | 2 +- lld/test/MachO/invalid/invalid-executable.s | 4 +- lld/test/MachO/invalid/invalid-relocation.yaml | 2 +- lld/test/MachO/invalid/missing-dylib.s | 2 +- lld/test/MachO/invalid/no-id-dylink.yaml | 2 +- lld/test/MachO/invalid/no-such-file.s | 2 +- lld/test/MachO/invalid/order-file-bad-arch.test | 2 +- lld/test/MachO/invalid/order-file-bad-objfile.test | 2 +- lld/test/MachO/invalid/undefined-symbol.s | 2 +- lld/test/MachO/link-search-order.s | 6 +-- lld/test/MachO/load-commands.s | 2 +- lld/test/MachO/no-exports-dylib.s | 2 +- lld/test/MachO/order-file.s | 56 +++++++++++----------- lld/test/MachO/platform-version.test | 12 ++--- lld/test/MachO/relocations.s | 2 +- lld/test/MachO/resolution.s | 10 ++-- lld/test/MachO/search-paths.test | 4 +- lld/test/MachO/section-headers.s | 2 +- lld/test/MachO/section-merge.s | 2 +- lld/test/MachO/segments.s | 2 +- lld/test/MachO/silent-ignore.test | 4 +- lld/test/MachO/static-link.s | 2 +- lld/test/MachO/sub-library.s | 12 ++--- lld/test/MachO/subsections-section-relocs.s | 2 +- lld/test/MachO/subsections-symbol-relocs.s | 4 +- lld/test/MachO/symbol-order.s | 8 ++-- lld/test/MachO/symtab.s | 2 +- lld/test/MachO/x86-64-reloc-signed.s | 2 +- lld/test/MachO/x86-64-reloc-unsigned.s | 2 +- 40 files changed, 109 insertions(+), 100 deletions(-) diff --git a/lld/MachO/Config.h b/lld/MachO/Config.h index 8e533f6..39839d5 100644 --- a/lld/MachO/Config.h +++ b/lld/MachO/Config.h @@ -12,6 +12,7 @@ #include "llvm/ADT/DenseMap.h" #include "llvm/ADT/StringRef.h" #include "llvm/BinaryFormat/MachO.h" +#include "llvm/TextAPI/MachO/Architecture.h" #include @@ -26,6 +27,7 @@ struct Configuration { bool hasReexports = false; llvm::StringRef installName; llvm::StringRef outputFile; + llvm::MachO::Architecture arch; llvm::MachO::HeaderFileType outputType; std::vector searchPaths; llvm::DenseMap priorities; diff --git a/lld/MachO/Driver.cpp b/lld/MachO/Driver.cpp index e0ebf8e..0b021c4 100644 --- a/lld/MachO/Driver.cpp +++ b/lld/MachO/Driver.cpp @@ -27,6 +27,7 @@ #include "llvm/ADT/StringRef.h" #include "llvm/BinaryFormat/MachO.h" #include "llvm/BinaryFormat/Magic.h" +#include "llvm/Config/config.h" #include "llvm/Object/Archive.h" #include "llvm/Option/ArgList.h" #include "llvm/Option/Option.h" @@ -90,10 +91,16 @@ static Optional findLibrary(StringRef name) { } static TargetInfo *createTargetInfo(opt::InputArgList &args) { - StringRef s = args.getLastArgValue(OPT_arch, "x86_64"); - if (s != "x86_64") - error("missing or unsupported -arch " + s); - return createX86_64TargetInfo(); + StringRef arch = llvm::Triple(LLVM_DEFAULT_TARGET_TRIPLE).getArchName(); + config->arch = llvm::MachO::getArchitectureFromName( + args.getLastArgValue(OPT_arch, arch)); + switch (config->arch) { + case llvm::MachO::AK_x86_64: + case llvm::MachO::AK_x86_64h: + return createX86_64TargetInfo(); + default: + fatal("missing or unsupported -arch " + args.getLastArgValue(OPT_arch)); + } } static std::vector getSearchPaths(opt::InputArgList &args) { diff --git a/lld/test/MachO/archive.s b/lld/test/MachO/archive.s index 3709807..0d80bdb 100644 --- a/lld/test/MachO/archive.s +++ b/lld/test/MachO/archive.s @@ -7,7 +7,7 @@ # RUN: rm -f %t/test.a # RUN: llvm-ar rcs %t/test.a %t/2.o %t/3.o %t/4.o -# RUN: lld -flavor darwinnew %t/main.o %t/test.a -o %t/test.out +# RUN: lld -flavor darwinnew -arch x86_64 %t/main.o %t/test.a -o %t/test.out ## TODO: Run llvm-nm -p to validate symbol order # RUN: llvm-nm %t/test.out | FileCheck %s @@ -16,7 +16,7 @@ # CHECK: T _main ## Linking with the archive first in the command line shouldn't change anything -# RUN: lld -flavor darwinnew %t/test.a %t/main.o -o %t/test.out +# RUN: lld -flavor darwinnew -arch x86_64 %t/test.a %t/main.o -o %t/test.out # RUN: llvm-nm %t/test.out | FileCheck %s --check-prefix ARCHIVE-FIRST # ARCHIVE-FIRST: T _bar # ARCHIVE-FIRST: T _boo diff --git a/lld/test/MachO/dylib.s b/lld/test/MachO/dylib.s index 507a7de..72483e5 100644 --- a/lld/test/MachO/dylib.s +++ b/lld/test/MachO/dylib.s @@ -1,7 +1,7 @@ # REQUIRES: x86 # RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %s -o %t.o -# RUN: lld -flavor darwinnew -dylib -install_name @executable_path/libfoo.dylib \ +# RUN: lld -flavor darwinnew -arch x86_64 -dylib -install_name @executable_path/libfoo.dylib \ # RUN: %t.o -o %t.dylib # RUN: llvm-objdump --macho --dylib-id %t.dylib | FileCheck %s # CHECK: @executable_path/libfoo.dylib @@ -10,7 +10,7 @@ ## a flag for a missing entry symbol (since dylibs don't have entry symbols). ## Also check that we come up with the right install name if one isn't ## specified. -# RUN: lld -flavor darwinnew -dylib %t.o -o %t.defaultInstallName.dylib -e missing_entry +# RUN: lld -flavor darwinnew -arch x86_64 -dylib %t.o -o %t.defaultInstallName.dylib -e missing_entry # RUN: obj2yaml %t.defaultInstallName.dylib | FileCheck %s -DOUTPUT=%t.defaultInstallName.dylib --check-prefix=DEFAULT-INSTALL-NAME # DEFAULT-INSTALL-NAME: [[OUTPUT]] diff --git a/lld/test/MachO/dylink-lazy.s b/lld/test/MachO/dylink-lazy.s index c1d6275..a77a23b 100644 --- a/lld/test/MachO/dylink-lazy.s +++ b/lld/test/MachO/dylink-lazy.s @@ -4,13 +4,13 @@ # RUN: -o %t/libhello.o # RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %p/Inputs/libgoodbye.s \ # RUN: -o %t/libgoodbye.o -# RUN: lld -flavor darwinnew -dylib -install_name \ +# RUN: lld -flavor darwinnew -arch x86_64 -dylib -install_name \ # RUN: @executable_path/libhello.dylib %t/libhello.o -o %t/libhello.dylib -# RUN: lld -flavor darwinnew -dylib -install_name \ +# RUN: lld -flavor darwinnew -arch x86_64 -dylib -install_name \ # RUN: @executable_path/libgoodbye.dylib %t/libgoodbye.o -o %t/libgoodbye.dylib # RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %s -o %t/dylink-lazy.o -# RUN: lld -flavor darwinnew -o %t/dylink-lazy -L%t -lhello -lgoodbye %t/dylink-lazy.o +# RUN: lld -flavor darwinnew -arch x86_64 -o %t/dylink-lazy -L%t -lhello -lgoodbye %t/dylink-lazy.o ## When looking at the __stubs section alone, we are unable to easily tell which ## symbol each entry points to. So we call objdump twice in order to get the diff --git a/lld/test/MachO/dylink.s b/lld/test/MachO/dylink.s index e47d9ef..82a3fb2 100644 --- a/lld/test/MachO/dylink.s +++ b/lld/test/MachO/dylink.s @@ -4,9 +4,9 @@ # RUN: -o %t/libhello.o # RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %p/Inputs/libgoodbye.s \ # RUN: -o %t/libgoodbye.o -# RUN: lld -flavor darwinnew -dylib -install_name \ +# RUN: lld -flavor darwinnew -arch x86_64 -dylib -install_name \ # RUN: @executable_path/libhello.dylib %t/libhello.o -o %t/libhello.dylib -# RUN: lld -flavor darwinnew -dylib -install_name \ +# RUN: lld -flavor darwinnew -arch x86_64 -dylib -install_name \ # RUN: @executable_path/libgoodbye.dylib %t/libgoodbye.o -o %t/libgoodbye.dylib ## Make sure we are using the export trie and not the symbol table when linking @@ -18,7 +18,7 @@ # NOSYM: no symbols # RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %s -o %t/dylink.o -# RUN: lld -flavor darwinnew -o %t/dylink -Z -L%t -lhello -lgoodbye %t/dylink.o +# RUN: lld -flavor darwinnew -arch x86_64 -o %t/dylink -Z -L%t -lhello -lgoodbye %t/dylink.o # RUN: llvm-objdump --bind -d %t/dylink | FileCheck %s # CHECK: movq [[#%u, HELLO_OFF:]](%rip), %rsi diff --git a/lld/test/MachO/entry-symbol.s b/lld/test/MachO/entry-symbol.s index 159c7c5..2182aa1 100644 --- a/lld/test/MachO/entry-symbol.s +++ b/lld/test/MachO/entry-symbol.s @@ -1,6 +1,6 @@ # REQUIRES: x86 # RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %s -o %t.o -# RUN: lld -flavor darwinnew -o %t %t.o -e _not_main +# RUN: lld -flavor darwinnew -arch x86_64 -o %t %t.o -e _not_main # RUN: llvm-objdump --macho --all-headers --syms %t | FileCheck %s # CHECK-LABEL: SYMBOL TABLE # CHECK-NEXT: {{0*}}[[#%x, ENTRY_ADDR:]] {{.*}} __TEXT,__text _not_main @@ -16,9 +16,9 @@ # CHECK-NEXT: offset [[#ENTRYOFF]] -# RUN: not lld -flavor darwinnew -o /dev/null %t.o -e _missing 2>&1 | FileCheck %s --check-prefix=UNDEFINED +# RUN: not lld -flavor darwinnew -arch x86_64 -o /dev/null %t.o -e _missing 2>&1 | FileCheck %s --check-prefix=UNDEFINED # UNDEFINED: error: undefined symbol: _missing -# RUN: not lld -flavor darwinnew -o /dev/null %t.o 2>&1 | FileCheck %s --check-prefix=DEFAULT-ENTRY +# RUN: not lld -flavor darwinnew -arch x86_64 -o /dev/null %t.o 2>&1 | FileCheck %s --check-prefix=DEFAULT-ENTRY # DEFAULT-ENTRY: error: undefined symbol: _main .text diff --git a/lld/test/MachO/export-trie.s b/lld/test/MachO/export-trie.s index fc1f6d1..ae62ff9 100644 --- a/lld/test/MachO/export-trie.s +++ b/lld/test/MachO/export-trie.s @@ -1,6 +1,6 @@ # REQUIRES: x86 # RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %s -o %t.o -# RUN: lld -flavor darwinnew -dylib %t.o -o %t.dylib +# RUN: lld -flavor darwinnew -arch x86_64 -dylib %t.o -o %t.dylib # RUN: llvm-objdump --syms --exports-trie %t.dylib | \ # RUN: FileCheck %s --check-prefix=EXPORTS diff --git a/lld/test/MachO/invalid/alignment-too-large.yaml b/lld/test/MachO/invalid/alignment-too-large.yaml index 7995052..41ef85d5 100644 --- a/lld/test/MachO/invalid/alignment-too-large.yaml +++ b/lld/test/MachO/invalid/alignment-too-large.yaml @@ -1,5 +1,5 @@ # RUN: yaml2obj %s -o %t.o -# RUN: not lld -flavor darwinnew -o %t %t.o 2>&1 | FileCheck %s +# RUN: not lld -flavor darwinnew -arch x86_64 -o %t %t.o 2>&1 | FileCheck %s # # CHECK: error: alignment 32 of section __text is too large --- !mach-o diff --git a/lld/test/MachO/invalid/archive-no-index.s b/lld/test/MachO/invalid/archive-no-index.s index 0f2f023..17314f4 100644 --- a/lld/test/MachO/invalid/archive-no-index.s +++ b/lld/test/MachO/invalid/archive-no-index.s @@ -8,7 +8,7 @@ # RUN: rm -f %t/test.a # RUN: llvm-ar rcS %t/test.a %t/2.o %t/3.o %t/4.o -# RUN: not lld -flavor darwinnew %t/test.o %t/test.a -o /dev/null 2>&1 | FileCheck %s +# RUN: not lld -flavor darwinnew -arch x86_64 %t/test.o %t/test.a -o /dev/null 2>&1 | FileCheck %s # CHECK: error: {{.*}}.a: archive has no index; run ranlib to add one .global _main diff --git a/lld/test/MachO/invalid/bad-archive.s b/lld/test/MachO/invalid/bad-archive.s index 9429dc3..4e48c85 100644 --- a/lld/test/MachO/invalid/bad-archive.s +++ b/lld/test/MachO/invalid/bad-archive.s @@ -3,7 +3,7 @@ # RUN: echo "foo" >> %t.a # RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %s -o %t.o -# RUN: not lld -flavor darwinnew %t.o %t.a -o /dev/null 2>&1 | FileCheck -DFILE=%t.a %s +# RUN: not lld -flavor darwinnew -arch x86_64 %t.o %t.a -o /dev/null 2>&1 | FileCheck -DFILE=%t.a %s # CHECK: error: [[FILE]]: failed to parse archive: truncated or malformed archive (remaining size of archive too small for next archive member header at offset 8) .global _main diff --git a/lld/test/MachO/invalid/duplicate-symbol.s b/lld/test/MachO/invalid/duplicate-symbol.s index d08f34f..ee5f891 100644 --- a/lld/test/MachO/invalid/duplicate-symbol.s +++ b/lld/test/MachO/invalid/duplicate-symbol.s @@ -1,7 +1,7 @@ # REQUIRES: x86 # RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %s -o %t.o # RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %s -o %t-dup.o -# RUN: not lld -flavor darwinnew -o /dev/null %t-dup.o %t.o 2>&1 | FileCheck %s +# RUN: not lld -flavor darwinnew -arch x86_64 -o /dev/null %t-dup.o %t.o 2>&1 | FileCheck %s # CHECK: error: duplicate symbol: _main diff --git a/lld/test/MachO/invalid/invalid-executable.s b/lld/test/MachO/invalid/invalid-executable.s index d8d7acc..7e2d0e5 100644 --- a/lld/test/MachO/invalid/invalid-executable.s +++ b/lld/test/MachO/invalid/invalid-executable.s @@ -1,7 +1,7 @@ # REQUIRES: x86 # RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-darwin %s -o %t.o -# RUN: lld -flavor darwinnew -o %t %t.o -# RUN: not lld -flavor darwinnew -o /dev/null %t 2>&1 | FileCheck %s -DFILE=%t +# RUN: lld -flavor darwinnew -arch x86_64 -o %t %t.o +# RUN: not lld -flavor darwinnew -arch x86_64 -o /dev/null %t 2>&1 | FileCheck %s -DFILE=%t # CHECK: error: [[FILE]]: unhandled file type .text diff --git a/lld/test/MachO/invalid/invalid-relocation.yaml b/lld/test/MachO/invalid/invalid-relocation.yaml index ed7c24ea..a6771bd 100644 --- a/lld/test/MachO/invalid/invalid-relocation.yaml +++ b/lld/test/MachO/invalid/invalid-relocation.yaml @@ -1,6 +1,6 @@ # REQUIRES: x86 # RUN: yaml2obj %s -o %t.o -# RUN: not lld -flavor darwinnew -o %t %t.o 2>&1 | FileCheck %s -DFILE=%t.o +# RUN: not lld -flavor darwinnew -arch x86_64 -o %t %t.o 2>&1 | FileCheck %s -DFILE=%t.o # # CHECK: error: invalid relocation at offset 1 of __TEXT,__text in [[FILE]]: relocations of type 0 must not be pcrel diff --git a/lld/test/MachO/invalid/missing-dylib.s b/lld/test/MachO/invalid/missing-dylib.s index ad7e511..5f39cf0 100644 --- a/lld/test/MachO/invalid/missing-dylib.s +++ b/lld/test/MachO/invalid/missing-dylib.s @@ -1,5 +1,5 @@ # REQUIRES: x86 # RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %s -o %t.o -# RUN: not lld -flavor darwinnew -Z -o %t -lmissing %t.o 2>&1 | FileCheck %s +# RUN: not lld -flavor darwinnew -arch x86_64 -Z -o %t -lmissing %t.o 2>&1 | FileCheck %s # CHECK: error: library not found for -lmissing diff --git a/lld/test/MachO/invalid/no-id-dylink.yaml b/lld/test/MachO/invalid/no-id-dylink.yaml index d5b0b33..d841675 100644 --- a/lld/test/MachO/invalid/no-id-dylink.yaml +++ b/lld/test/MachO/invalid/no-id-dylink.yaml @@ -2,7 +2,7 @@ # RUN: mkdir -p %t # RUN: yaml2obj %s -o %t/libnoid.dylib # RUN: echo ".globl _main; .text; _main: ret" | llvm-mc -filetype=obj -triple=x86_64-apple-darwin -o %t/no-id-dylink.o -# RUN: not lld -flavor darwinnew -o %t/no-id-dylink -Z -L%t -lnoid %t/no-id-dylink.o 2>&1 | FileCheck %s +# RUN: not lld -flavor darwinnew -arch x86_64 -o %t/no-id-dylink -Z -L%t -lnoid %t/no-id-dylink.o 2>&1 | FileCheck %s # CHECK: error: dylib {{.*}}libnoid.dylib missing LC_ID_DYLIB load command ## This YAML file was originally generated from linking the following source diff --git a/lld/test/MachO/invalid/no-such-file.s b/lld/test/MachO/invalid/no-such-file.s index 0122c61..3aaf363 100644 --- a/lld/test/MachO/invalid/no-such-file.s +++ b/lld/test/MachO/invalid/no-such-file.s @@ -1,4 +1,4 @@ # REQUIRES: x86 -# RUN: not lld -flavor darwinnew -o /dev/null %t-no-such-file.o 2>&1 | FileCheck %s +# RUN: not lld -flavor darwinnew -arch x86_64 -o /dev/null %t-no-such-file.o 2>&1 | FileCheck %s # CHECK: error: cannot open {{.*}}no-such-file.o diff --git a/lld/test/MachO/invalid/order-file-bad-arch.test b/lld/test/MachO/invalid/order-file-bad-arch.test index 84fe696..f3a7183 100644 --- a/lld/test/MachO/invalid/order-file-bad-arch.test +++ b/lld/test/MachO/invalid/order-file-bad-arch.test @@ -1,6 +1,6 @@ # REQUIRES: x86 # RUN: echo ".globl _main; .text; _main: ret" | llvm-mc -filetype=obj -triple=x86_64-apple-darwin -o %t.o -# RUN: not lld -flavor darwinnew -o %t %t.o -order_file %s 2>&1 | FileCheck %s +# RUN: not lld -flavor darwinnew -arch x86_64 -o %t %t.o -order_file %s 2>&1 | FileCheck %s # CHECK: error: invalid arch "sparc" in order file: expected one of arm, arm64, i386, x86_64, ppc, ppc64 # CHECK-EMPTY: diff --git a/lld/test/MachO/invalid/order-file-bad-objfile.test b/lld/test/MachO/invalid/order-file-bad-objfile.test index 19e9404..6300730 100644 --- a/lld/test/MachO/invalid/order-file-bad-objfile.test +++ b/lld/test/MachO/invalid/order-file-bad-objfile.test @@ -1,6 +1,6 @@ # REQUIRES: x86 # RUN: echo ".globl _main; .text; _main: ret" | llvm-mc -filetype=obj -triple=x86_64-apple-darwin -o %t.o -# RUN: not lld -flavor darwinnew -o %t %t.o -order_file %s 2>&1 | FileCheck %s +# RUN: not lld -flavor darwinnew -arch x86_64 -o %t %t.o -order_file %s 2>&1 | FileCheck %s # CHECK: invalid object file name "helloo" in order file: should end with .o # CHECK: invalid object file name "z80" in order file: should end with .o # CHECK-EMPTY: diff --git a/lld/test/MachO/invalid/undefined-symbol.s b/lld/test/MachO/invalid/undefined-symbol.s index 88eabfd..e266cd8 100644 --- a/lld/test/MachO/invalid/undefined-symbol.s +++ b/lld/test/MachO/invalid/undefined-symbol.s @@ -1,6 +1,6 @@ # REQUIRES: x86 # RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %s -o %t.o -# RUN: not lld -flavor darwinnew -Z -o %t %t.o 2>&1 | FileCheck %s -DBASENAME=%basename_t +# RUN: not lld -flavor darwinnew -arch x86_64 -Z -o %t %t.o 2>&1 | FileCheck %s -DBASENAME=%basename_t # CHECK: error: undefined symbol _foo, referenced from [[BASENAME]] .globl _main diff --git a/lld/test/MachO/link-search-order.s b/lld/test/MachO/link-search-order.s index 289293a..545b58e 100644 --- a/lld/test/MachO/link-search-order.s +++ b/lld/test/MachO/link-search-order.s @@ -3,14 +3,14 @@ # RUN: mkdir -p %t # # RUN: llvm-mc -filetype obj -triple x86_64-apple-darwin %p/Inputs/libhello.s -o %t/hello.o -# RUN: lld -flavor darwinnew -dylib -install_name @executable_path/libhello.dylib %t/hello.o -o %t/libhello.dylib +# RUN: lld -flavor darwinnew -arch x86_64 -dylib -install_name @executable_path/libhello.dylib %t/hello.o -o %t/libhello.dylib # # RUN: llvm-mc -filetype obj -triple x86_64-apple-darwin %p/Inputs/libgoodbye.s -o %t/goodbye.o -# RUN: lld -flavor darwinnew -dylib -install_name @executable_path/libgoodbye.dylib %t/goodbye.o -o %t/libgoodbye.dylib +# RUN: lld -flavor darwinnew -arch x86_64 -dylib -install_name @executable_path/libgoodbye.dylib %t/goodbye.o -o %t/libgoodbye.dylib # RUN: llvm-ar --format=darwin crs %t/libgoodbye.a %t/goodbye.o # # RUN: llvm-mc -filetype obj -triple x86_64-apple-darwin %s -o %t/test.o -# RUN: lld -flavor darwinnew -o %t/test -Z -L%t -lhello -lgoodbye %t/test.o +# RUN: lld -flavor darwinnew -arch x86_64 -o %t/test -Z -L%t -lhello -lgoodbye %t/test.o # # RUN: llvm-objdump --macho --dylibs-used %t/test | FileCheck %s diff --git a/lld/test/MachO/load-commands.s b/lld/test/MachO/load-commands.s index c9f5d9b..e30b2d7 100644 --- a/lld/test/MachO/load-commands.s +++ b/lld/test/MachO/load-commands.s @@ -1,6 +1,6 @@ # REQUIRES: x86 # RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %s -o %t.o -# RUN: lld -flavor darwinnew -o %t %t.o +# RUN: lld -flavor darwinnew -arch x86_64 -o %t %t.o ## Check for the presence of load commands that are essential for a working ## executable. diff --git a/lld/test/MachO/no-exports-dylib.s b/lld/test/MachO/no-exports-dylib.s index 896c31ef..ee8438e 100644 --- a/lld/test/MachO/no-exports-dylib.s +++ b/lld/test/MachO/no-exports-dylib.s @@ -1,6 +1,6 @@ # REQUIRES: x86 # RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %s -o %t.o -# RUN: lld -flavor darwinnew -dylib %t.o -o %t.dylib +# RUN: lld -flavor darwinnew -arch x86_64 -dylib %t.o -o %t.dylib # RUN: obj2yaml %t.dylib | FileCheck %s # CHECK: export_size: 0 diff --git a/lld/test/MachO/order-file.s b/lld/test/MachO/order-file.s index 4ced92a..2b8c2bb 100644 --- a/lld/test/MachO/order-file.s +++ b/lld/test/MachO/order-file.s @@ -14,67 +14,67 @@ # RUN: echo "_foo # just a comment" > %t/ord-1 # RUN: echo "_main # another comment" >> %t/ord-1 -# RUN: lld -flavor darwinnew -o %t/test-1 %t/test.o %t/foo.o -order_file %t/ord-1 +# RUN: lld -flavor darwinnew -arch x86_64 -o %t/test-1 %t/test.o %t/foo.o -order_file %t/ord-1 # RUN: llvm-objdump -d %t/test-1 | FileCheck %s --check-prefix=FOO-FIRST ## Output should be the same regardless of the command-line order of object files -# RUN: lld -flavor darwinnew -o %t/test-1 %t/foo.o %t/test.o -order_file %t/ord-1 +# RUN: lld -flavor darwinnew -arch x86_64 -o %t/test-1 %t/foo.o %t/test.o -order_file %t/ord-1 # RUN: llvm-objdump -d %t/test-1 | FileCheck %s --check-prefix=FOO-FIRST # RUN: echo "_main # just a comment" > %t/ord-2 # RUN: echo "_foo # another comment" >> %t/ord-2 -# RUN: lld -flavor darwinnew -o %t/test-2 %t/test.o %t/foo.o -order_file %t/ord-2 +# RUN: lld -flavor darwinnew -arch x86_64 -o %t/test-2 %t/test.o %t/foo.o -order_file %t/ord-2 # RUN: llvm-objdump -d %t/test-2 | FileCheck %s --check-prefix=FOO-SECOND -# RUN: lld -flavor darwinnew -o %t/test-2 %t/foo.o %t/test.o -order_file %t/ord-2 +# RUN: lld -flavor darwinnew -arch x86_64 -o %t/test-2 %t/foo.o %t/test.o -order_file %t/ord-2 # RUN: llvm-objdump -d %t/test-2 | FileCheck %s --check-prefix=FOO-SECOND # RUN: echo "foo.o:_foo" > %t/ord-file-match # RUN: echo "_main" >> %t/ord-file-match -# RUN: lld -flavor darwinnew -o %t/test-file-match %t/test.o %t/foo.o -order_file %t/ord-file-match +# RUN: lld -flavor darwinnew -arch x86_64 -o %t/test-file-match %t/test.o %t/foo.o -order_file %t/ord-file-match # RUN: llvm-objdump -d %t/test-file-match | FileCheck %s --check-prefix=FOO-FIRST ## Output should be the same regardless of the command-line order of object files -# RUN: lld -flavor darwinnew -o %t/test-file-match %t/foo.o %t/test.o -order_file %t/ord-file-match +# RUN: lld -flavor darwinnew -arch x86_64 -o %t/test-file-match %t/foo.o %t/test.o -order_file %t/ord-file-match # RUN: llvm-objdump -d %t/test-file-match | FileCheck %s --check-prefix=FOO-FIRST # RUN: echo "bar.o:_foo" > %t/ord-file-nomatch # RUN: echo "_main" >> %t/ord-file-nomatch # RUN: echo "_foo" >> %t/ord-file-nomatch -# RUN: lld -flavor darwinnew -o %t/test-file-nomatch %t/test.o %t/foo.o -order_file %t/ord-file-nomatch +# RUN: lld -flavor darwinnew -arch x86_64 -o %t/test-file-nomatch %t/test.o %t/foo.o -order_file %t/ord-file-nomatch # RUN: llvm-objdump -d %t/test-file-nomatch | FileCheck %s --check-prefix=FOO-SECOND -# RUN: lld -flavor darwinnew -o %t/test-file-nomatch %t/foo.o %t/test.o -order_file %t/ord-file-nomatch +# RUN: lld -flavor darwinnew -arch x86_64 -o %t/test-file-nomatch %t/foo.o %t/test.o -order_file %t/ord-file-nomatch # RUN: llvm-objdump -d %t/test-file-nomatch | FileCheck %s --check-prefix=FOO-SECOND # RUN: echo "x86_64:_foo" > %t/ord-arch-match # RUN: echo "_main" >> %t/ord-arch-match -# RUN: lld -flavor darwinnew -o %t/test-arch-match %t/test.o %t/foo.o -order_file %t/ord-arch-match +# RUN: lld -flavor darwinnew -arch x86_64 -o %t/test-arch-match %t/test.o %t/foo.o -order_file %t/ord-arch-match # RUN: llvm-objdump -d %t/test-arch-match | FileCheck %s --check-prefix=FOO-FIRST -# RUN: lld -flavor darwinnew -o %t/test-arch-match %t/foo.o %t/test.o -order_file %t/ord-arch-match +# RUN: lld -flavor darwinnew -arch x86_64 -o %t/test-arch-match %t/foo.o %t/test.o -order_file %t/ord-arch-match # RUN: llvm-objdump -d %t/test-arch-match | FileCheck %s --check-prefix=FOO-FIRST # RUN: echo "ppc:_foo" > %t/ord-arch-nomatch # RUN: echo "_main" >> %t/ord-arch-nomatch # RUN: echo "_foo" >> %t/ord-arch-nomatch -# RUN: lld -flavor darwinnew -o %t/test-arch-nomatch %t/test.o %t/foo.o -order_file %t/ord-arch-nomatch +# RUN: lld -flavor darwinnew -arch x86_64 -o %t/test-arch-nomatch %t/test.o %t/foo.o -order_file %t/ord-arch-nomatch # RUN: llvm-objdump -d %t/test-arch-nomatch | FileCheck %s --check-prefix=FOO-SECOND -# RUN: lld -flavor darwinnew -o %t/test-arch-nomatch %t/foo.o %t/test.o -order_file %t/ord-arch-nomatch +# RUN: lld -flavor darwinnew -arch x86_64 -o %t/test-arch-nomatch %t/foo.o %t/test.o -order_file %t/ord-arch-nomatch # RUN: llvm-objdump -d %t/test-arch-nomatch | FileCheck %s --check-prefix=FOO-SECOND # RUN: echo "x86_64:bar.o:_foo" > %t/ord-arch-file-match # RUN: echo "_main" >> %t/ord-arch-match -# RUN: lld -flavor darwinnew -o %t/test-arch-match %t/test.o %t/foo.o -order_file %t/ord-arch-match +# RUN: lld -flavor darwinnew -arch x86_64 -o %t/test-arch-match %t/test.o %t/foo.o -order_file %t/ord-arch-match # RUN: llvm-objdump -d %t/test-arch-match | FileCheck %s --check-prefix=FOO-FIRST -# RUN: lld -flavor darwinnew -o %t/test-arch-match %t/foo.o %t/test.o -order_file %t/ord-arch-match +# RUN: lld -flavor darwinnew -arch x86_64 -o %t/test-arch-match %t/foo.o %t/test.o -order_file %t/ord-arch-match # RUN: llvm-objdump -d %t/test-arch-match | FileCheck %s --check-prefix=FOO-FIRST ## Test archives -# RUN: lld -flavor darwinnew -o %t/test-archive-1 %t/test.o %t/foo.a -order_file %t/ord-1 +# RUN: lld -flavor darwinnew -arch x86_64 -o %t/test-archive-1 %t/test.o %t/foo.a -order_file %t/ord-1 # RUN: llvm-objdump -d %t/test-archive-1 | FileCheck %s --check-prefix=FOO-FIRST -# RUN: lld -flavor darwinnew -o %t/test-archive-1 %t/foo.a %t/test.o -order_file %t/ord-1 +# RUN: lld -flavor darwinnew -arch x86_64 -o %t/test-archive-1 %t/foo.a %t/test.o -order_file %t/ord-1 # RUN: llvm-objdump -d %t/test-archive-1 | FileCheck %s --check-prefix=FOO-FIRST -# RUN: lld -flavor darwinnew -o %t/test-archive-file-no-match %t/test.o %t/foo.a -order_file %t/ord-file-nomatch +# RUN: lld -flavor darwinnew -arch x86_64 -o %t/test-archive-file-no-match %t/test.o %t/foo.a -order_file %t/ord-file-nomatch # RUN: llvm-objdump -d %t/test-archive-file-no-match | FileCheck %s --check-prefix=FOO-SECOND -# RUN: lld -flavor darwinnew -o %t/test-archive %t/foo.a %t/test.o -order_file %t/ord-file-nomatch +# RUN: lld -flavor darwinnew -arch x86_64 -o %t/test-archive %t/foo.a %t/test.o -order_file %t/ord-file-nomatch # RUN: llvm-objdump -d %t/test-archive-file-no-match | FileCheck %s --check-prefix=FOO-SECOND ## The following tests check that if an address is matched by multiple order @@ -83,33 +83,33 @@ # RUN: echo "_foo" > %t/ord-multiple-1 # RUN: echo "_main" >> %t/ord-multiple-1 # RUN: echo "foo.o:_foo" >> %t/ord-multiple-1 -# RUN: lld -flavor darwinnew -o %t/test-1 %t/test.o %t/foo.o -order_file %t/ord-multiple-1 +# RUN: lld -flavor darwinnew -arch x86_64 -o %t/test-1 %t/test.o %t/foo.o -order_file %t/ord-multiple-1 # RUN: llvm-objdump -d %t/test-1 | FileCheck %s --check-prefix=FOO-FIRST -# RUN: lld -flavor darwinnew -o %t/test-1 %t/foo.o %t/test.o -order_file %t/ord-multiple-1 +# RUN: lld -flavor darwinnew -arch x86_64 -o %t/test-1 %t/foo.o %t/test.o -order_file %t/ord-multiple-1 # RUN: llvm-objdump -d %t/test-1 | FileCheck %s --check-prefix=FOO-FIRST # RUN: echo "foo.o:_foo" > %t/ord-multiple-2 # RUN: echo "_main" >> %t/ord-multiple-2 # RUN: echo "_foo" >> %t/ord-multiple-2 -# RUN: lld -flavor darwinnew -o %t/test-2 %t/test.o %t/foo.o -order_file %t/ord-multiple-2 +# RUN: lld -flavor darwinnew -arch x86_64 -o %t/test-2 %t/test.o %t/foo.o -order_file %t/ord-multiple-2 # RUN: llvm-objdump -d %t/test-2 | FileCheck %s --check-prefix=FOO-FIRST -# RUN: lld -flavor darwinnew -o %t/test-2 %t/foo.o %t/test.o -order_file %t/ord-multiple-2 +# RUN: lld -flavor darwinnew -arch x86_64 -o %t/test-2 %t/foo.o %t/test.o -order_file %t/ord-multiple-2 # RUN: llvm-objdump -d %t/test-2 | FileCheck %s --check-prefix=FOO-FIRST # RUN: echo "_foo" > %t/ord-multiple-3 # RUN: echo "_main" >> %t/ord-multiple-3 # RUN: echo "_foo" >> %t/ord-multiple-3 -# RUN: lld -flavor darwinnew -o %t/test-3 %t/test.o %t/foo.o -order_file %t/ord-multiple-3 +# RUN: lld -flavor darwinnew -arch x86_64 -o %t/test-3 %t/test.o %t/foo.o -order_file %t/ord-multiple-3 # RUN: llvm-objdump -d %t/test-3 | FileCheck %s --check-prefix=FOO-FIRST -# RUN: lld -flavor darwinnew -o %t/test-3 %t/foo.o %t/test.o -order_file %t/ord-multiple-3 +# RUN: lld -flavor darwinnew -arch x86_64 -o %t/test-3 %t/foo.o %t/test.o -order_file %t/ord-multiple-3 # RUN: llvm-objdump -d %t/test-3 | FileCheck %s --check-prefix=FOO-FIRST # RUN: echo "foo.o:_foo" > %t/ord-multiple-4 # RUN: echo "_main" >> %t/ord-multiple-4 # RUN: echo "foo.o:_foo" >> %t/ord-multiple-4 -# RUN: lld -flavor darwinnew -o %t/test-4 %t/test.o %t/foo.o -order_file %t/ord-multiple-4 +# RUN: lld -flavor darwinnew -arch x86_64 -o %t/test-4 %t/test.o %t/foo.o -order_file %t/ord-multiple-4 # RUN: llvm-objdump -d %t/test-4 | FileCheck %s --check-prefix=FOO-FIRST -# RUN: lld -flavor darwinnew -o %t/test-4 %t/foo.o %t/test.o -order_file %t/ord-multiple-4 +# RUN: lld -flavor darwinnew -arch x86_64 -o %t/test-4 %t/foo.o %t/test.o -order_file %t/ord-multiple-4 # RUN: llvm-objdump -d %t/test-4 | FileCheck %s --check-prefix=FOO-FIRST ## _foo and _bar both point to the same location. When both symbols appear in @@ -118,9 +118,9 @@ # RUN: echo "_bar" > %t/ord-alias # RUN: echo "_main" >> %t/ord-alias # RUN: echo "_foo" >> %t/ord-alias -# RUN: lld -flavor darwinnew -o %t/test-alias %t/test.o %t/foo.o -order_file %t/ord-alias +# RUN: lld -flavor darwinnew -arch x86_64 -o %t/test-alias %t/test.o %t/foo.o -order_file %t/ord-alias # RUN: llvm-objdump -d %t/test-alias | FileCheck %s --check-prefix=FOO-FIRST -# RUN: lld -flavor darwinnew -o %t/test-alias %t/foo.o %t/test.o -order_file %t/ord-alias +# RUN: lld -flavor darwinnew -arch x86_64 -o %t/test-alias %t/foo.o %t/test.o -order_file %t/ord-alias # RUN: llvm-objdump -d %t/test-alias | FileCheck %s --check-prefix=FOO-FIRST .text diff --git a/lld/test/MachO/platform-version.test b/lld/test/MachO/platform-version.test index 4c486c6..ba10d46 100644 --- a/lld/test/MachO/platform-version.test +++ b/lld/test/MachO/platform-version.test @@ -1,14 +1,14 @@ -# RUN: not lld -flavor darwinnew -platform_version 2>&1 \ +# RUN: not lld -flavor darwinnew -arch x86_64 -platform_version 2>&1 \ # RUN: | FileCheck --check-prefix=FAIL %s -# RUN: not lld -flavor darwinnew -platform_version macos 2>&1 \ +# RUN: not lld -flavor darwinnew -arch x86_64 -platform_version macos 2>&1 \ # RUN: | FileCheck --check-prefix=FAIL %s -# RUN: not lld -flavor darwinnew -platform_version macos 10.15 2>&1 \ +# RUN: not lld -flavor darwinnew -arch x86_64 -platform_version macos 10.15 2>&1 \ # RUN: | FileCheck --check-prefix=FAIL %s -# RUN: not lld -flavor darwinnew -platform_version macos -lfoo 10.15 2>&1 \ +# RUN: not lld -flavor darwinnew -arch x86_64 -platform_version macos -lfoo 10.15 2>&1 \ # RUN: | FileCheck --check-prefix=FAIL %s -# RUN: not lld -flavor darwinnew -platform_version macos 10.15 10.15.4 2>&1 \ +# RUN: not lld -flavor darwinnew -arch x86_64 -platform_version macos 10.15 10.15.4 2>&1 \ # RUN: | FileCheck --check-prefix=GOOD %s -# RUN: not lld -flavor darwinnew -platform_version macos 10.15 10.15.4 foobar 2>&1 \ +# RUN: not lld -flavor darwinnew -arch x86_64 -platform_version macos 10.15 10.15.4 foobar 2>&1 \ # RUN: | FileCheck --check-prefix=FAIL_FILE %s FAIL: usage: -platform_version platform min_version sdk_version diff --git a/lld/test/MachO/relocations.s b/lld/test/MachO/relocations.s index b1c828d..e665456 100644 --- a/lld/test/MachO/relocations.s +++ b/lld/test/MachO/relocations.s @@ -1,6 +1,6 @@ # REQUIRES: x86 # RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %s -o %t.o -# RUN: lld -flavor darwinnew -o %t %t.o +# RUN: lld -flavor darwinnew -arch x86_64 -o %t %t.o # RUN: llvm-objdump --section-headers --syms -d %t | FileCheck %s # CHECK-LABEL: Sections: diff --git a/lld/test/MachO/resolution.s b/lld/test/MachO/resolution.s index a13bb52..28a30ac 100644 --- a/lld/test/MachO/resolution.s +++ b/lld/test/MachO/resolution.s @@ -2,19 +2,19 @@ # RUN: mkdir -p %t # RUN: echo '.globl _foo, _bar, _baz; _foo: _bar: _baz:' | \ # RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin -o %t/libresolution.o -# RUN: lld -flavor darwinnew -dylib -install_name \ +# RUN: lld -flavor darwinnew -arch x86_64 -dylib -install_name \ # RUN: @executable_path/libresolution.dylib %t/libresolution.o -o %t/libresolution.dylib -# RUN: lld -flavor darwinnew -dylib -install_name \ +# RUN: lld -flavor darwinnew -arch x86_64 -dylib -install_name \ # RUN: @executable_path/libresolution2.dylib %t/libresolution.o -o %t/libresolution2.dylib # RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %s -o %t/resolution.o ## Check that we select the symbol defined in the first dylib passed on the ## command line. -# RUN: lld -flavor darwinnew -o %t/dylib-first -Z -L%t -lresolution -lresolution2 %t/resolution.o +# RUN: lld -flavor darwinnew -arch x86_64 -o %t/dylib-first -Z -L%t -lresolution -lresolution2 %t/resolution.o # RUN: llvm-objdump --macho --bind %t/dylib-first | FileCheck %s --check-prefix=DYLIB-FIRST # DYLIB-FIRST: libresolution _foo -# RUN: lld -flavor darwinnew -o %t/dylib2-first -Z -L%t -lresolution2 -lresolution %t/resolution.o +# RUN: lld -flavor darwinnew -arch x86_64 -o %t/dylib2-first -Z -L%t -lresolution2 -lresolution %t/resolution.o # RUN: llvm-objdump --macho --bind %t/dylib2-first | FileCheck %s --check-prefix=DYLIB2-FIRST # DYLIB2-FIRST: libresolution2 _foo @@ -24,7 +24,7 @@ ## Check that we pick the dylib symbol over the undefined symbol in the object ## file, even if the object file appears first on the command line. -# RUN: lld -flavor darwinnew -o %t/obj-first -Z -L%t %t/resolution.o -lresolution +# RUN: lld -flavor darwinnew -arch x86_64 -o %t/obj-first -Z -L%t %t/resolution.o -lresolution # RUN: llvm-objdump --macho --bind %t/obj-first | FileCheck %s --check-prefix=OBJ-FIRST # OBJ-FIRST: libresolution _foo ## But defined symbols should still take precedence. diff --git a/lld/test/MachO/search-paths.test b/lld/test/MachO/search-paths.test index 84e8ba9..4a39a7b 100644 --- a/lld/test/MachO/search-paths.test +++ b/lld/test/MachO/search-paths.test @@ -1,12 +1,12 @@ RUN: mkdir -p %t -RUN: lld -flavor darwinnew -v -L%t 2>&1 | FileCheck -DDIR=%t %s +RUN: lld -flavor darwinnew -arch x86_64 -v -L%t 2>&1 | FileCheck -DDIR=%t %s CHECK: Library search paths: CHECK-NEXT: [[DIR]] CHECK-NEXT: /usr/lib CHECK-NEXT: /usr/local/lib -RUN: lld -flavor darwinnew -v -L%t -Z 2>&1 | FileCheck -DDIR=%t --check-prefix=CHECK_Z %s +RUN: lld -flavor darwinnew -arch x86_64 -v -L%t -Z 2>&1 | FileCheck -DDIR=%t --check-prefix=CHECK_Z %s CHECK_Z: Library search paths: CHECK_Z-NEXT: [[DIR]] CHECK_Z-NOT: /usr/ diff --git a/lld/test/MachO/section-headers.s b/lld/test/MachO/section-headers.s index 9fafc5a..55d5e1c 100644 --- a/lld/test/MachO/section-headers.s +++ b/lld/test/MachO/section-headers.s @@ -1,6 +1,6 @@ # REQUIRES: x86 # RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %s -o %t.o -# RUN: lld -flavor darwinnew -o %t %t.o +# RUN: lld -flavor darwinnew -arch x86_64 -o %t %t.o # RUN: llvm-readobj --section-headers %t | FileCheck %s # CHECK: Name: __text diff --git a/lld/test/MachO/section-merge.s b/lld/test/MachO/section-merge.s index 33e1edd..0ec9b41 100644 --- a/lld/test/MachO/section-merge.s +++ b/lld/test/MachO/section-merge.s @@ -8,7 +8,7 @@ # RUN: -o %t/libfunction.o # RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %s \ # RUN: -o %t/main.o -# RUN: lld -flavor darwinnew -o %t/output %t/libfunction.o %t/libgoodbye.o %t/libhello.o %t/main.o +# RUN: lld -flavor darwinnew -arch x86_64 -o %t/output %t/libfunction.o %t/libgoodbye.o %t/libhello.o %t/main.o # RUN: llvm-objdump --syms %t/output | FileCheck %s # CHECK: SYMBOL TABLE: diff --git a/lld/test/MachO/segments.s b/lld/test/MachO/segments.s index acb0f1e..6eba124 100644 --- a/lld/test/MachO/segments.s +++ b/lld/test/MachO/segments.s @@ -1,6 +1,6 @@ # REQUIRES: x86 # RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %s -o %t.o -# RUN: lld -flavor darwinnew -o %t %t.o +# RUN: lld -flavor darwinnew -arch x86_64 -o %t %t.o # RUN: llvm-readobj --macho-segment %t | FileCheck %s ## These two segments must always be present at the start of an executable. diff --git a/lld/test/MachO/silent-ignore.test b/lld/test/MachO/silent-ignore.test index ae68dd8..289f37a 100644 --- a/lld/test/MachO/silent-ignore.test +++ b/lld/test/MachO/silent-ignore.test @@ -1,9 +1,9 @@ -RUN: lld -flavor darwinnew -v \ +RUN: lld -flavor darwinnew -arch x86_64 -v \ RUN: -demangle \ RUN: -dynamic \ RUN: -no_deduplicate \ RUN: -lto_library /lib/foo \ RUN: -macosx_version_min 0 \ RUN: -syslibroot /path/to/MacOSX.platform/Developer/SDKs/MacOSX.sdk -RUN: not lld -flavor darwinnew -v --not-an-ignored-argument 2>&1 | FileCheck %s +RUN: not lld -flavor darwinnew -arch x86_64 -v --not-an-ignored-argument 2>&1 | FileCheck %s CHECK: error: unknown argument: --not-an-ignored-argument diff --git a/lld/test/MachO/static-link.s b/lld/test/MachO/static-link.s index f826080..84309f8 100644 --- a/lld/test/MachO/static-link.s +++ b/lld/test/MachO/static-link.s @@ -6,7 +6,7 @@ # RUN: llvm-ar --format=darwin crs %t/libgoodbye.a %t/goodbye.o # # RUN: llvm-mc -filetype obj -triple x86_64-apple-darwin %s -o %t/test.o -# RUN: lld -flavor darwinnew -o %t/test -Z -L%t -lgoodbye %t/test.o +# RUN: lld -flavor darwinnew -arch x86_64 -o %t/test -Z -L%t -lgoodbye %t/test.o # # RUN: llvm-objdump --syms -d -r %t/test | FileCheck %s diff --git a/lld/test/MachO/sub-library.s b/lld/test/MachO/sub-library.s index e858eaf..c98546d 100644 --- a/lld/test/MachO/sub-library.s +++ b/lld/test/MachO/sub-library.s @@ -8,10 +8,10 @@ # RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %p/Inputs/libgoodbye.s \ # RUN: -o %t/libgoodbye.o # RUN: echo "" | llvm-mc -filetype=obj -triple=x86_64-apple-darwin -o %t/libsuper.o -# RUN: lld -flavor darwinnew -dylib %t/libhello.o -o %t/libhello.dylib -# RUN: lld -flavor darwinnew -dylib -L%t -sub_library libhello -lhello \ +# RUN: lld -flavor darwinnew -arch x86_64 -dylib %t/libhello.o -o %t/libhello.dylib +# RUN: lld -flavor darwinnew -arch x86_64 -dylib -L%t -sub_library libhello -lhello \ # RUN: %t/libgoodbye.o -o %t/libgoodbye.dylib -# RUN: lld -flavor darwinnew -dylib -L%t -sub_library libgoodbye -lgoodbye -install_name \ +# RUN: lld -flavor darwinnew -arch x86_64 -dylib -L%t -sub_library libgoodbye -lgoodbye -install_name \ # RUN: @executable_path/libsuper.dylib %t/libsuper.o -o %t/libsuper.dylib @@ -37,7 +37,7 @@ # SUPER-HEADERS: name [[DIR]]/libgoodbye.dylib # RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %s -o %t/sub-library.o -# RUN: lld -flavor darwinnew -o %t/sub-library -L%t -lsuper %t/sub-library.o +# RUN: lld -flavor darwinnew -arch x86_64 -o %t/sub-library -L%t -lsuper %t/sub-library.o # RUN: llvm-objdump --macho --bind %t/sub-library | FileCheck %s # CHECK-LABEL: Bind table: @@ -46,11 +46,11 @@ ## Check that we fail gracefully if the sub-library is missing -# RUN: not lld -flavor darwinnew -dylib -Z -o %t/sub-library -sub_library libmissing %t/sub-library.o 2>&1 \ +# RUN: not lld -flavor darwinnew -arch x86_64 -dylib -Z -o %t/sub-library -sub_library libmissing %t/sub-library.o 2>&1 \ # RUN: | FileCheck %s --check-prefix=MISSING-SUB-LIBRARY # MISSING-SUB-LIBRARY: error: -sub_library libmissing does not match a supplied dylib # RUN: rm -f %t/libgoodbye.dylib -# RUN: not lld -flavor darwinnew -o %t/sub-library -Z -L%t -lsuper %t/sub-library.o 2>&1 \ +# RUN: not lld -flavor darwinnew -arch x86_64 -o %t/sub-library -Z -L%t -lsuper %t/sub-library.o 2>&1 \ # RUN: | FileCheck %s --check-prefix=MISSING-REEXPORT -DDIR=%t # MISSING-REEXPORT: error: unable to read re-exported dylib at [[DIR]]/libgoodbye.dylib diff --git a/lld/test/MachO/subsections-section-relocs.s b/lld/test/MachO/subsections-section-relocs.s index e8a8d7a..5f98199 100644 --- a/lld/test/MachO/subsections-section-relocs.s +++ b/lld/test/MachO/subsections-section-relocs.s @@ -5,7 +5,7 @@ # RUN: echo "_bar_str" > %t/order-file # RUN: echo "_foo_str" >> %t/order-file -# RUN: lld -flavor darwinnew -o %t/test %t/test.o -order_file %t/order-file +# RUN: lld -flavor darwinnew -arch x86_64 -o %t/test %t/test.o -order_file %t/order-file # RUN: llvm-objdump --section-headers -d --no-show-raw-insn %t/test | FileCheck %s # CHECK-LABEL: Sections: # CHECK: __cstring {{[^ ]*}} {{0*}}[[#%x, CSTRING_ADDR:]] diff --git a/lld/test/MachO/subsections-symbol-relocs.s b/lld/test/MachO/subsections-symbol-relocs.s index 475c909..b657c37 100644 --- a/lld/test/MachO/subsections-symbol-relocs.s +++ b/lld/test/MachO/subsections-symbol-relocs.s @@ -17,9 +17,9 @@ # RUN: echo "_main" >> %t/order-file-2 # RUN: echo "_qux" >> %t/order-file-2 -# RUN: lld -flavor darwinnew -o %t/test-1 %t/test.o -order_file %t/order-file-1 +# RUN: lld -flavor darwinnew -arch x86_64 -o %t/test-1 %t/test.o -order_file %t/order-file-1 # RUN: llvm-objdump -d --no-show-raw-insn %t/test-1 | FileCheck %s -# RUN: lld -flavor darwinnew -o %t/test-2 %t/test.o -order_file %t/order-file-2 +# RUN: lld -flavor darwinnew -arch x86_64 -o %t/test-2 %t/test.o -order_file %t/order-file-2 # RUN: llvm-objdump -d --no-show-raw-insn %t/test-2 | FileCheck %s # CHECK-LABEL: Disassembly of section __TEXT,__text: # CHECK: <_bar>: diff --git a/lld/test/MachO/symbol-order.s b/lld/test/MachO/symbol-order.s index e656632..7ea97c4 100644 --- a/lld/test/MachO/symbol-order.s +++ b/lld/test/MachO/symbol-order.s @@ -5,7 +5,7 @@ # RUN: echo ".global f; .section __TEXT,test_f2; f: ret" | llvm-mc -filetype=obj -triple=x86_64-apple-darwin -o %t/f2.o # RUN: echo ".global f, g; .section __TEXT,test_fg; f: ret; g: callq f" | llvm-mc -filetype=obj -triple=x86_64-apple-darwin -o %t/fg.o # RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %s -o %t/test.o -# RUN: lld -flavor darwinnew -dylib -o %t/libf1.dylib %t/f1.o +# RUN: lld -flavor darwinnew -arch x86_64 -dylib -o %t/libf1.dylib %t/f1.o # RUN: rm -f %t/libf2_g.a # RUN: llvm-ar rcs %t/libf2_g.a %t/f2.o %t/g.o @@ -13,7 +13,7 @@ # RUN: rm -f %t/libfg.a # RUN: llvm-ar rcs %t/libfg.a %t/fg.o -# RUN: lld -flavor darwinnew %t/libf1.dylib %t/libf2_g.a %t/test.o -o %t/test.out +# RUN: lld -flavor darwinnew -arch x86_64 %t/libf1.dylib %t/libf2_g.a %t/test.o -o %t/test.out # RUN: llvm-objdump --syms --macho --lazy-bind %t/test.out | FileCheck %s --check-prefix DYLIB-FIRST # DYLIB-FIRST: SYMBOL TABLE: # DYLIB-FIRST-DAG: __TEXT,test_g g @@ -21,7 +21,7 @@ # DYLIB-FIRST-NEXT: segment section address dylib symbol # DYLIB-FIRST-NEXT: __DATA __la_symbol_ptr {{[0-9a-z]+}} libf1 f -# RUN: lld -flavor darwinnew %t/libf2_g.a %t/libf1.dylib %t/test.o -o %t/test.out +# RUN: lld -flavor darwinnew -arch x86_64 %t/libf2_g.a %t/libf1.dylib %t/test.o -o %t/test.out # RUN: llvm-objdump --syms --macho --lazy-bind %t/test.out | FileCheck %s --check-prefix ARCHIVE-FIRST # ARCHIVE-FIRST: SYMBOL TABLE: # ARCHIVE-FIRST-DAG: __TEXT,test_f2 f @@ -30,7 +30,7 @@ # ARCHIVE-FIRST-NEXT: segment section address dylib symbol # ARCHIVE-FIRST-EMPTY: -# RUN: lld -flavor darwinnew %t/libf1.dylib %t/libfg.a %t/test.o -o %t/test.out +# RUN: lld -flavor darwinnew -arch x86_64 %t/libf1.dylib %t/libfg.a %t/test.o -o %t/test.out # RUN: llvm-objdump --syms --macho --lazy-bind %t/test.out | FileCheck %s --check-prefix ARCHIVE-PRIORITY # ARCHIVE-PRIORITY: SYMBOL TABLE: # ARCHIVE-PRIORITY-DAG: __TEXT,test_fg f diff --git a/lld/test/MachO/symtab.s b/lld/test/MachO/symtab.s index 44a0169..4082c81 100644 --- a/lld/test/MachO/symtab.s +++ b/lld/test/MachO/symtab.s @@ -1,6 +1,6 @@ # REQUIRES: x86 # RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %s -o %t.o -# RUN: lld -flavor darwinnew -o %t %t.o +# RUN: lld -flavor darwinnew -arch x86_64 -o %t %t.o # RUN: llvm-readobj -symbols %t | FileCheck %s # CHECK: Symbols [ diff --git a/lld/test/MachO/x86-64-reloc-signed.s b/lld/test/MachO/x86-64-reloc-signed.s index 568f65c..be147cd3 100644 --- a/lld/test/MachO/x86-64-reloc-signed.s +++ b/lld/test/MachO/x86-64-reloc-signed.s @@ -1,6 +1,6 @@ # REQUIRES: x86 # RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %s -o %t.o -# RUN: lld -flavor darwinnew -o %t %t.o +# RUN: lld -flavor darwinnew -arch x86_64 -o %t %t.o # RUN: llvm-objdump -D %t | FileCheck %s # CHECK: <_main>: diff --git a/lld/test/MachO/x86-64-reloc-unsigned.s b/lld/test/MachO/x86-64-reloc-unsigned.s index 69c8a23..2fd426b 100644 --- a/lld/test/MachO/x86-64-reloc-unsigned.s +++ b/lld/test/MachO/x86-64-reloc-unsigned.s @@ -1,6 +1,6 @@ # REQUIRES: x86 # RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %s -o %t.o -# RUN: lld -flavor darwinnew -o %t %t.o +# RUN: lld -flavor darwinnew -arch x86_64 -o %t %t.o # RUN: llvm-objdump --full-contents %t | FileCheck %s # CHECK: Contents of section foo: # CHECK: 100001000 08100000 01000000 -- 2.7.4