From 1baa44d1af85ecd14df8da9f7681a5011d7add0f Mon Sep 17 00:00:00 2001 From: Mehdi Amini Date: Tue, 24 Jan 2017 18:15:21 +0000 Subject: [PATCH] Forward -bitcode_process_mode to ld64 in marker-only mode Reviewers: steven_wu Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D29066 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@292961 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Driver/Tools.cpp | 8 ++++++-- test/Driver/embed-bitcode.c | 7 +++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp index 1a511adc28..c78123b236 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp @@ -8435,9 +8435,13 @@ void darwin::Linker::AddLinkArgs(Compilation &C, const ArgList &Args, // for embed-bitcode, use -bitcode_bundle in linker command if (C.getDriver().embedBitcodeEnabled()) { // Check if the toolchain supports bitcode build flow. - if (MachOTC.SupportsEmbeddedBitcode()) + if (MachOTC.SupportsEmbeddedBitcode()) { CmdArgs.push_back("-bitcode_bundle"); - else + if (C.getDriver().embedBitcodeMarkerOnly() && Version[0] >= 278) { + CmdArgs.push_back("-bitcode_process_mode"); + CmdArgs.push_back("marker"); + } + } else D.Diag(diag::err_drv_bitcode_unsupported_on_toolchain); } diff --git a/test/Driver/embed-bitcode.c b/test/Driver/embed-bitcode.c index 6606a1c302..58b90b0ca6 100644 --- a/test/Driver/embed-bitcode.c +++ b/test/Driver/embed-bitcode.c @@ -34,6 +34,13 @@ // CHECK-LTO-NOT: warning: argument unused during compilation: '-fembed-bitcode' // CHECK-LTO-NOT: -cc1 // CHECK-LTO-NOT: -fembed-bitcode=all +// RUN: touch %t.o +// RUN: %clang %t.o -fembed-bitcode -fembed-bitcode-marker -mlinker-version=277 2>&1 -### | FileCheck %s -check-prefix=CHECK-LTO-MARKER-277 +// RUN: %clang %t.o -fembed-bitcode -fembed-bitcode-marker -mlinker-version=278 2>&1 -### | FileCheck %s -check-prefix=CHECK-LTO-MARKER-278 +// CHECK-LTO-MARKER-277-NOT: bitcode_process_mode +// CHECK-LTO-MARKER-278: bitcode_process_mode + + // RUN: %clang -c %s -fembed-bitcode-marker -fintegrated-as 2>&1 -### | FileCheck %s -check-prefix=CHECK-MARKER // CHECK-MARKER: -cc1 -- 2.40.0