From 20d253e3bf69494e670ad529b311948a21caf783 Mon Sep 17 00:00:00 2001 From: Joseph Huber Date: Wed, 13 Jul 2022 12:31:29 -0400 Subject: [PATCH] [LinkerWrapper] Fix linker-wrapper not working with host-LTO --- clang/test/Driver/linker-wrapper.c | 9 +++++++++ clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/clang/test/Driver/linker-wrapper.c b/clang/test/Driver/linker-wrapper.c index 21a811e..1c0b8b0 100644 --- a/clang/test/Driver/linker-wrapper.c +++ b/clang/test/Driver/linker-wrapper.c @@ -14,6 +14,15 @@ // RUN: clang-offload-packager -o %t.out \ // RUN: --image=file=%S/Inputs/dummy-elf.o,kind=openmp,triple=nvptx64-nvidia-cuda,arch=sm_70 \ // RUN: --image=file=%S/Inputs/dummy-elf.o,kind=openmp,triple=nvptx64-nvidia-cuda,arch=sm_70 +// RUN: %clang -cc1 %s -triple x86_64-unknown-linux-gnu -emit-llvm-bc -o %t.o -fembed-offload-object=%t.out +// RUN: clang-linker-wrapper --host-triple=x86_64-unknown-linux-gnu --dry-run \ +// RUN: --linker-path=/usr/bin/ld -- %t.o -o a.out 2>&1 | FileCheck %s --check-prefix=HOST_BC + +// HOST_BC: nvlink{{.*}}-m64 -o {{.*}}.out -arch sm_70 {{.*}}.o {{.*}}.o + +// RUN: clang-offload-packager -o %t.out \ +// RUN: --image=file=%S/Inputs/dummy-elf.o,kind=openmp,triple=nvptx64-nvidia-cuda,arch=sm_70 \ +// RUN: --image=file=%S/Inputs/dummy-elf.o,kind=openmp,triple=nvptx64-nvidia-cuda,arch=sm_70 // RUN: %clang -cc1 %s -triple x86_64-unknown-linux-gnu -emit-obj -o %t.o -fembed-offload-object=%t.out // RUN: clang-linker-wrapper --host-triple=x86_64-unknown-linux-gnu --dry-run --device-debug \ // RUN: --linker-path=/usr/bin/ld -- %t.o -o a.out 2>&1 | FileCheck %s --check-prefix=NVPTX_LINK_DEBUG diff --git a/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp b/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp index 78a03d2..898fa71 100644 --- a/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp +++ b/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp @@ -336,7 +336,7 @@ Error extractFromBitcode(std::unique_ptr Buffer, // Extract offloading data from globals referenced by the // `llvm.embedded.object` metadata with the `.llvm.offloading` section. - auto *MD = M->getNamedMetadata("llvm.embedded.object"); + auto *MD = M->getNamedMetadata("llvm.embedded.objects"); if (!MD) return Error::success(); -- 2.7.4