From 80b1fbecf4df3296b3976ce3cb42eb7832fc9053 Mon Sep 17 00:00:00 2001 From: Joseph Huber Date: Thu, 26 Mar 2026 21:08:49 -0500 Subject: [PATCH] [ClangLinkerWrapper] Fix `-v` for newer CMake passing it directly (#188883) Summary: Normally `-v` is version for tools, but it's also verbose for the linker. CMake tries to identify the linker by passing `-Wl,-v` which goes to the linker wrapper instead. Make this only print version on `--version` and forward the other one to the linker so it appears transparent to the host ABI. A bit of a hack, but it should work. --- clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp | 2 +- clang/tools/clang-linker-wrapper/LinkerWrapperOpts.td | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp b/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp index 9e24a9c26d89..5abf1d387922 100644 --- a/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp +++ b/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp @@ -1332,7 +1332,7 @@ int main(int Argc, char **Argv) { Args.hasArg(OPT_help_hidden), Args.hasArg(OPT_help_hidden)); return EXIT_SUCCESS; } - if (Args.hasArg(OPT_v)) { + if (Args.hasArg(OPT_version)) { printVersion(outs()); return EXIT_SUCCESS; } diff --git a/clang/tools/clang-linker-wrapper/LinkerWrapperOpts.td b/clang/tools/clang-linker-wrapper/LinkerWrapperOpts.td index 973e5bb51a50..53b6c596de29 100644 --- a/clang/tools/clang-linker-wrapper/LinkerWrapperOpts.td +++ b/clang/tools/clang-linker-wrapper/LinkerWrapperOpts.td @@ -127,8 +127,7 @@ def library_EQ : Joined<["--", "-"], "library=">, Flags<[HelpHidden]>, def rpath : Separate<["--", "-"], "rpath">; def rpath_EQ : Joined<["--", "-"], "rpath=">, Flags<[HelpHidden]>, Alias; -def v : Flag<["--", "-"], "v">, HelpText<"Display the version number and exit">; -def version : Flag<["--", "-"], "version">, Flags<[HelpHidden]>, Alias; +def version : Flag<["--", "-"], "version">, Flags<[HelpHidden]>; def whole_archive : Flag<["--", "-"], "whole-archive">, Flags<[HelpHidden]>; def no_whole_archive : Flag<["--", "-"], "no-whole-archive">, Flags<[HelpHidden]>;