From: Joseph Huber Date: Sat, 6 May 2023 01:50:49 +0000 (-0500) Subject: [Clang] Respect `-L` options when compiling directly for AMDGPU X-Git-Tag: upstream/17.0.6~8779 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=027aeec7da67afe33b159f5e42dec57488897454;p=platform%2Fupstream%2Fllvm.git [Clang] Respect `-L` options when compiling directly for AMDGPU The AMDGPU linker is `lld`, which has full support for standard features like static libraries. Previously the AMDGPU toolchain did not forward `-L` arguments so we could not tell it where to find certain libraries. This patch simply forwards it like the other toolchains. Reviewed By: yaxunl, MaskRay Differential Revision: https://reviews.llvm.org/D150013 --- diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp index a6247b4..189c99e 100644 --- a/clang/lib/Driver/ToolChains/CommonArgs.cpp +++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp @@ -232,9 +232,11 @@ 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. + // toolchains. Otherwise only add the '-L' arguments requested by the user. 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 diff --git a/clang/test/Driver/amdgpu-toolchain.c b/clang/test/Driver/amdgpu-toolchain.c index b8b6667..288dbbe 100644 --- a/clang/test/Driver/amdgpu-toolchain.c +++ b/clang/test/Driver/amdgpu-toolchain.c @@ -11,6 +11,6 @@ // DWARF_VER: "-dwarf-version=5" // RUN: %clang -### --target=amdgcn-amd-amdhsa -mcpu=gfx906 -nogpulib \ -// RUN: -flto -fconvergent-functions %s 2>&1 | FileCheck -check-prefix=LTO %s +// RUN: -L. -flto -fconvergent-functions %s 2>&1 | FileCheck -check-prefix=LTO %s // LTO: clang{{.*}} "-flto=full"{{.*}}"-fconvergent-functions" -// LTO: ld.lld{{.*}}-plugin-opt=mcpu=gfx906 +// LTO: ld.lld{{.*}}"-L."{{.*}}"-plugin-opt=mcpu=gfx906"