Author: Fangrui Song Date: 2023-07-07T23:57:45-07:00 New Revision: 681cb54a54bb60dea9034b4b0b45ccc392875b9a
URL: https://github.com/llvm/llvm-project/commit/681cb54a54bb60dea9034b4b0b45ccc392875b9a DIFF: https://github.com/llvm/llvm-project/commit/681cb54a54bb60dea9034b4b0b45ccc392875b9a.diff LOG: [Driver] Fix duplicate -L after D150013 D150013 is to render -L for AMDGPU but updating tools::AddLinkerInputs is wrong and causes many non-isCrossCompiling targets to have duplicate -L options because they do `Args.AddAllArgs(CmdArgs, options::OPT_L);`. Revert the change and add a `Args.AddAllArgs(CmdArgs, options::OPT_L);` instead. Added: Modified: clang/lib/Driver/ToolChains/AMDGPU.cpp clang/lib/Driver/ToolChains/CommonArgs.cpp Removed: ################################################################################ diff --git a/clang/lib/Driver/ToolChains/AMDGPU.cpp b/clang/lib/Driver/ToolChains/AMDGPU.cpp index 4684068b817b47..2a5b4b66275ff6 100644 --- a/clang/lib/Driver/ToolChains/AMDGPU.cpp +++ b/clang/lib/Driver/ToolChains/AMDGPU.cpp @@ -552,6 +552,7 @@ void amdgpu::Linker::ConstructJob(Compilation &C, const JobAction &JA, std::string Linker = getToolChain().GetProgramPath(getShortName()); ArgStringList CmdArgs; addLinkerCompressDebugSectionsOption(getToolChain(), Args, CmdArgs); + Args.AddAllArgs(CmdArgs, options::OPT_L); AddLinkerInputs(getToolChain(), Inputs, Args, CmdArgs, JA); if (C.getDriver().isUsingLTO()) addLTOOptions(getToolChain(), Args, CmdArgs, Output, Inputs[0], diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp index 61b26cf1d3d196..a58058fdcd6c3d 100644 --- a/clang/lib/Driver/ToolChains/CommonArgs.cpp +++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp @@ -262,11 +262,9 @@ void tools::AddLinkerInputs(const ToolChain &TC, const InputInfoList &Inputs, Args.AddAllArgValues(CmdArgs, options::OPT_Zlinker_input); // LIBRARY_PATH are included before user inputs and only supported on native - // toolchains. Otherwise only add the '-L' arguments requested by the user. + // toolchains. if (!TC.isCrossCompiling()) addDirectoryList(Args, CmdArgs, "-L", "LIBRARY_PATH"); - else - Args.AddAllArgs(CmdArgs, options::OPT_L); for (const auto &II : Inputs) { // If the current tool chain refers to an OpenMP offloading host, we _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits