lamb-j retitled this revision from "WIP: [AMDGPU] Respect unresolved symbol option if forwarded to linker" to "[AMDGPU] Respect unresolved symbol option if forwarded to linker". lamb-j updated this revision to Diff 552775. lamb-j requested review of this revision.
Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D158582/new/ https://reviews.llvm.org/D158582 Files: clang/lib/Driver/ToolChains/AMDGPU.cpp clang/test/Driver/amdgpu-toolchain-opencl.cl clang/test/Driver/amdgpu-toolchain.c Index: clang/test/Driver/amdgpu-toolchain.c =================================================================== --- clang/test/Driver/amdgpu-toolchain.c +++ clang/test/Driver/amdgpu-toolchain.c @@ -10,6 +10,14 @@ // DWARF_VER: "-dwarf-version=5" +// RUN: %clang -### --target=amdgcn--amdhsa -x assembler \ +// RUN: -Wl,--unresolved-symbols=ignore-all %s 2>&1 | FileCheck -check-prefix=AS_LINK_UR %s +// RUN: %clang -### --target=amdgcn--amdhsa -x assembler \ +// RUN: -Xlinker --unresolved-symbols=ignore-all %s 2>&1 | FileCheck -check-prefix=AS_LINK_UR %s + +// AS_LINK_UR: "-cc1as" +// AS_LINK_UR: ld.lld{{.*}} "--unresolved-symbols=ignore-all" + // RUN: %clang -### --target=amdgcn-amd-amdhsa -mcpu=gfx906 -nogpulib \ // RUN: -L. -flto -fconvergent-functions %s 2>&1 | FileCheck -check-prefixes=LTO,MCPU %s // RUN: %clang -### --target=amdgcn-amd-amdhsa -mcpu=gfx906 -nogpulib \ Index: clang/test/Driver/amdgpu-toolchain-opencl.cl =================================================================== --- clang/test/Driver/amdgpu-toolchain-opencl.cl +++ clang/test/Driver/amdgpu-toolchain-opencl.cl @@ -28,3 +28,7 @@ // RUN: %clang -### --target=amdgcn-amd-amdhsa-opencl -x cl -mcpu=fiji -nogpulib %s 2>&1 | FileCheck -check-prefix=CHK-LINK %s // CHK-LINK: ld.lld{{.*}} "--no-undefined" "-shared" + +// RUN: %clang -### --target=amdgcn-amd-amdhsa-opencl -Wl,--unresolved-symbols=ignore-all -x cl -mcpu=fiji -nogpulib %s 2>&1 | FileCheck -check-prefix=CHK-LINK_UR %s +// RUN: %clang -### --target=amdgcn-amd-amdhsa-opencl -Xlinker --unresolved-symbols=ignore-all -x cl -mcpu=fiji -nogpulib %s 2>&1 | FileCheck -check-prefix=CHK-LINK_UR %s +// CHK-LINK_UR: ld.lld{{.*}} "--unresolved-symbols=ignore-all" Index: clang/lib/Driver/ToolChains/AMDGPU.cpp =================================================================== --- clang/lib/Driver/ToolChains/AMDGPU.cpp +++ clang/lib/Driver/ToolChains/AMDGPU.cpp @@ -551,6 +551,9 @@ std::string Linker = getToolChain().GetProgramPath(getShortName()); ArgStringList CmdArgs; + CmdArgs.push_back("--no-undefined"); + CmdArgs.push_back("-shared"); + addLinkerCompressDebugSectionsOption(getToolChain(), Args, CmdArgs); Args.AddAllArgs(CmdArgs, options::OPT_L); AddLinkerInputs(getToolChain(), Inputs, Args, CmdArgs, JA); @@ -560,8 +563,6 @@ else if (Args.hasArg(options::OPT_mcpu_EQ)) CmdArgs.push_back(Args.MakeArgString( "-plugin-opt=mcpu=" + Args.getLastArgValue(options::OPT_mcpu_EQ))); - CmdArgs.push_back("--no-undefined"); - CmdArgs.push_back("-shared"); CmdArgs.push_back("-o"); CmdArgs.push_back(Output.getFilename()); C.addCommand(std::make_unique<Command>(
Index: clang/test/Driver/amdgpu-toolchain.c =================================================================== --- clang/test/Driver/amdgpu-toolchain.c +++ clang/test/Driver/amdgpu-toolchain.c @@ -10,6 +10,14 @@ // DWARF_VER: "-dwarf-version=5" +// RUN: %clang -### --target=amdgcn--amdhsa -x assembler \ +// RUN: -Wl,--unresolved-symbols=ignore-all %s 2>&1 | FileCheck -check-prefix=AS_LINK_UR %s +// RUN: %clang -### --target=amdgcn--amdhsa -x assembler \ +// RUN: -Xlinker --unresolved-symbols=ignore-all %s 2>&1 | FileCheck -check-prefix=AS_LINK_UR %s + +// AS_LINK_UR: "-cc1as" +// AS_LINK_UR: ld.lld{{.*}} "--unresolved-symbols=ignore-all" + // RUN: %clang -### --target=amdgcn-amd-amdhsa -mcpu=gfx906 -nogpulib \ // RUN: -L. -flto -fconvergent-functions %s 2>&1 | FileCheck -check-prefixes=LTO,MCPU %s // RUN: %clang -### --target=amdgcn-amd-amdhsa -mcpu=gfx906 -nogpulib \ Index: clang/test/Driver/amdgpu-toolchain-opencl.cl =================================================================== --- clang/test/Driver/amdgpu-toolchain-opencl.cl +++ clang/test/Driver/amdgpu-toolchain-opencl.cl @@ -28,3 +28,7 @@ // RUN: %clang -### --target=amdgcn-amd-amdhsa-opencl -x cl -mcpu=fiji -nogpulib %s 2>&1 | FileCheck -check-prefix=CHK-LINK %s // CHK-LINK: ld.lld{{.*}} "--no-undefined" "-shared" + +// RUN: %clang -### --target=amdgcn-amd-amdhsa-opencl -Wl,--unresolved-symbols=ignore-all -x cl -mcpu=fiji -nogpulib %s 2>&1 | FileCheck -check-prefix=CHK-LINK_UR %s +// RUN: %clang -### --target=amdgcn-amd-amdhsa-opencl -Xlinker --unresolved-symbols=ignore-all -x cl -mcpu=fiji -nogpulib %s 2>&1 | FileCheck -check-prefix=CHK-LINK_UR %s +// CHK-LINK_UR: ld.lld{{.*}} "--unresolved-symbols=ignore-all" Index: clang/lib/Driver/ToolChains/AMDGPU.cpp =================================================================== --- clang/lib/Driver/ToolChains/AMDGPU.cpp +++ clang/lib/Driver/ToolChains/AMDGPU.cpp @@ -551,6 +551,9 @@ std::string Linker = getToolChain().GetProgramPath(getShortName()); ArgStringList CmdArgs; + CmdArgs.push_back("--no-undefined"); + CmdArgs.push_back("-shared"); + addLinkerCompressDebugSectionsOption(getToolChain(), Args, CmdArgs); Args.AddAllArgs(CmdArgs, options::OPT_L); AddLinkerInputs(getToolChain(), Inputs, Args, CmdArgs, JA); @@ -560,8 +563,6 @@ else if (Args.hasArg(options::OPT_mcpu_EQ)) CmdArgs.push_back(Args.MakeArgString( "-plugin-opt=mcpu=" + Args.getLastArgValue(options::OPT_mcpu_EQ))); - CmdArgs.push_back("--no-undefined"); - CmdArgs.push_back("-shared"); CmdArgs.push_back("-o"); CmdArgs.push_back(Output.getFilename()); C.addCommand(std::make_unique<Command>(
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits