From ab45289d2e7ce224ee938c45aa07c5d7119fdb6f Mon Sep 17 00:00:00 2001 From: Nico Weber Date: Mon, 1 Mar 2021 14:58:35 -0500 Subject: [PATCH] [lld/mac] Make -v print version and search paths in additon to linking, not instead of linking This matches ld64's behavior. Differential Revision: https://reviews.llvm.org/D97718 --- lld/MachO/Driver.cpp | 2 -- lld/MachO/Options.td | 2 +- lld/test/MachO/silent-ignore.test | 2 +- lld/test/MachO/syslibroot.test | 18 +++++++++--------- 4 files changed, 11 insertions(+), 13 deletions(-) diff --git a/lld/MachO/Driver.cpp b/lld/MachO/Driver.cpp index d3e675c..e3a2b60 100644 --- a/lld/MachO/Driver.cpp +++ b/lld/MachO/Driver.cpp @@ -847,8 +847,6 @@ bool macho::link(ArrayRef argsArr, bool canExitEarly, (config->frameworkSearchPaths.size() ? "\n\t" + join(config->frameworkSearchPaths, "\n\t") : "")); - freeArena(); - return !errorCount(); } initLLVM(); // must be run before any call to addFile() diff --git a/lld/MachO/Options.td b/lld/MachO/Options.td index 81fcdad..84006ad 100644 --- a/lld/MachO/Options.td +++ b/lld/MachO/Options.td @@ -564,7 +564,7 @@ def bitcode_symbol_map : Separate<["-"], "bitcode_symbol_map">, def grp_rare : OptionGroup<"rare">, HelpText<"RARELY USED">; def v : Flag<["-"], "v">, - HelpText<"Print the linker version and search paths and exit">, + HelpText<"Print the linker version and search paths in addition to linking">, Group; def adhoc_codesign : Flag<["-"], "adhoc_codesign">, HelpText<"Write an ad-hoc code signature to the output file.">, diff --git a/lld/test/MachO/silent-ignore.test b/lld/test/MachO/silent-ignore.test index e6b4703..3e96d71 100644 --- a/lld/test/MachO/silent-ignore.test +++ b/lld/test/MachO/silent-ignore.test @@ -1,4 +1,4 @@ -RUN: %lld -v \ +RUN: %lld --version \ RUN: -dynamic \ RUN: -no_deduplicate \ RUN: -lto_library /lib/foo \ diff --git a/lld/test/MachO/syslibroot.test b/lld/test/MachO/syslibroot.test index 42099a9..fcf8bbe 100644 --- a/lld/test/MachO/syslibroot.test +++ b/lld/test/MachO/syslibroot.test @@ -1,56 +1,56 @@ # Ensure that a nonexistent path is ignored with a syslibroot -RUN: ld64.lld -v -syslibroot /var/empty | FileCheck %s -check-prefix CHECK-NONEXISTENT-SYSLIBROOT +RUN: ld64.lld -v -dylib -o /dev/null -syslibroot /var/empty | FileCheck %s -check-prefix CHECK-NONEXISTENT-SYSLIBROOT CHECK-NONEXISTENT-SYSLIBROOT: Library search paths: CHECK-NONEXISTENT-SYSLIBROOT-NEXT: Framework search paths: RUN: mkdir -p %t/usr/lib -RUN: ld64.lld -v -syslibroot %t 2>&1 | FileCheck %s -check-prefix CHECK-SYSLIBROOT -DROOT=%t +RUN: ld64.lld -v -dylib -o /dev/null -syslibroot %t 2>&1 | FileCheck %s -check-prefix CHECK-SYSLIBROOT -DROOT=%t CHECK-SYSLIBROOT-NOT: directory not found{{.*}}usr/local/lib CHECK-SYSLIBROOT: Library search paths: CHECK-SYSLIBROOT-NEXT: [[ROOT]]/usr/lib RUN: mkdir -p %t/Library/libxml2-development -RUN: ld64.lld -v -syslibroot %t -L /Library/libxml2-development | FileCheck %s -check-prefix CHECK-ABSOLUTE-PATH-REROOTED -DROOT=%t +RUN: ld64.lld -v -dylib -o /dev/null -syslibroot %t -L /Library/libxml2-development | FileCheck %s -check-prefix CHECK-ABSOLUTE-PATH-REROOTED -DROOT=%t CHECK-ABSOLUTE-PATH-REROOTED: Library search paths: CHECK-ABSOLUTE-PATH-REROOTED: [[ROOT]]/Library/libxml2-development CHECK-ABSOLUTE-PATH-REROOTED: [[ROOT]]/usr/lib -RUN: ld64.lld -v -syslibroot %t -L %t/Library/libxml2-development | FileCheck %s -check-prefix CHECK-PATH-WITHOUT-REROOT -DPATH=%t/Library/libxml2-development +RUN: ld64.lld -v -dylib -o /dev/null -syslibroot %t -L %t/Library/libxml2-development | FileCheck %s -check-prefix CHECK-PATH-WITHOUT-REROOT -DPATH=%t/Library/libxml2-development CHECK-PATH-WITHOUT-REROOT: Library search paths: CHECK-PATH-WITHOUT-REROOT-NEXT: [[PATH]] RUN: mkdir -p %t.2/usr/lib -RUN: ld64.lld -v -syslibroot %t -syslibroot %t.2 | FileCheck %s -check-prefix CHECK-SYSLIBROOT-MATRIX -DROOT=%t +RUN: ld64.lld -v -dylib -o /dev/null -syslibroot %t -syslibroot %t.2 | FileCheck %s -check-prefix CHECK-SYSLIBROOT-MATRIX -DROOT=%t CHECK-SYSLIBROOT-MATRIX: Library search paths: CHECK-SYSLIBROOT-MATRIX: [[ROOT]]/usr/lib CHECK-SYSLIBROOT-MATRIX: [[ROOT]].2/usr/lib -RUN: ld64.lld -v -syslibroot %t -syslibroot %t.2 -syslibroot / | FileCheck %s -check-prefix CHECK-SYSLIBROOT-IGNORED -DROOT=%t +RUN: ld64.lld -v -dylib -o /dev/null -syslibroot %t -syslibroot %t.2 -syslibroot / | FileCheck %s -check-prefix CHECK-SYSLIBROOT-IGNORED -DROOT=%t CHECK-SYSLIBROOT-IGNORED: Library search paths: CHECK-SYSLIBROOT-IGNORED-NOT: [[ROOT]]/usr/lib CHECK-SYSLIBROOT-IGNORED-NOT: [[ROOT]].2/usr/lib RUN: mkdir -p %t/System/Library/Frameworks -RUN: ld64.lld -v -syslibroot %t | FileCheck %s -check-prefix CHECK-SYSLIBROOT-FRAMEWORK -DROOT=%t +RUN: ld64.lld -v -dylib -o /dev/null -syslibroot %t | FileCheck %s -check-prefix CHECK-SYSLIBROOT-FRAMEWORK -DROOT=%t CHECK-SYSLIBROOT-FRAMEWORK: Framework search paths: CHECK-SYSLIBROOT-FRAMEWORK: [[ROOT]]/System/Library/Frameworks RUN: mkdir -p %t/Library/Frameworks RUN: mkdir -p %t.2/Library/Frameworks -RUN: ld64.lld -v -syslibroot %t -syslibroot %t.2 -F /Library/Frameworks | FileCheck %s -check-prefix CHECK-SYSLIBROOT-FRAMEWORK-MATRIX -DROOT=%t +RUN: ld64.lld -v -dylib -o /dev/null -syslibroot %t -syslibroot %t.2 -F /Library/Frameworks | FileCheck %s -check-prefix CHECK-SYSLIBROOT-FRAMEWORK-MATRIX -DROOT=%t CHECK-SYSLIBROOT-FRAMEWORK-MATRIX: Framework search paths: CHECK-SYSLIBROOT-FRAMEWORK-MATRIX: [[ROOT]]/Library/Frameworks CHECK-SYSLIBROOT-FRAMEWORK-MATRIX: [[ROOT]].2/Library/Frameworks -RUN: ld64.lld -v -syslibroot %t -syslibroot %t.2 -syslibroot / -F /Library/Frameworks | FileCheck %s -check-prefix CHECK-SYSLIBROOT-FRAMEWORK-IGNORED -DROOT=%t +RUN: ld64.lld -v -dylib -o /dev/null -syslibroot %t -syslibroot %t.2 -syslibroot / -F /Library/Frameworks | FileCheck %s -check-prefix CHECK-SYSLIBROOT-FRAMEWORK-IGNORED -DROOT=%t CHECK-SYSLIBROOT-FRAMEWORK-IGNORED: Framework search paths: CHECK-SYSLIBROOT-FRAMEWORK-IGNORED-NOT: [[ROOT]]/Library/Frameworks -- 2.7.4