Index: clang/docs/ClangCommandLineReference.rst =================================================================== --- clang/docs/ClangCommandLineReference.rst +++ clang/docs/ClangCommandLineReference.rst @@ -346,6 +346,8 @@ .. option:: -noprebind +.. option:: -noprofilelib + .. option:: -noseglinkedit .. option:: -nostartfiles Index: clang/include/clang/Driver/Options.td =================================================================== --- clang/include/clang/Driver/Options.td +++ clang/include/clang/Driver/Options.td @@ -2512,6 +2512,7 @@ def nopie : Flag<["-"], "nopie">; def no_pie : Flag<["-"], "no-pie">, Alias; def noprebind : Flag<["-"], "noprebind">; +def noprofilelib : Flag<["-"], "noprofilelib">; def noseglinkedit : Flag<["-"], "noseglinkedit">; def nostartfiles : Flag<["-"], "nostartfiles">; def nostdinc : Flag<["-"], "nostdinc">, Flags<[CoreOption]>; Index: clang/lib/Driver/ToolChain.cpp =================================================================== --- clang/lib/Driver/ToolChain.cpp +++ clang/lib/Driver/ToolChain.cpp @@ -450,6 +450,9 @@ } bool ToolChain::needsProfileRT(const ArgList &Args) { + if (Args.hasArg(options::OPT_noprofilelib)) + return false; + if (needsGCovInstrumentation(Args) || Args.hasArg(options::OPT_fprofile_generate) || Args.hasArg(options::OPT_fprofile_generate_EQ) || Index: clang/test/Driver/noprofilelib.c =================================================================== --- /dev/null +++ clang/test/Driver/noprofilelib.c @@ -0,0 +1,5 @@ +// RUN: %clang -target i686-pc-linux-gnu -### %s 2>&1 \ +// RUN: -fprofile-generate -noprofilelib | FileCheck %s +// RUN: %clang -target i686-pc-linux-gnu -### %s 2>&1 \ +// RUN: -fprofile-instr-generate -noprofilelib | FileCheck %s +// CHECK-NOT: clang_rt.profile