* [PATCH v2 1/2] tools: Bump minimum LLVM C++ std to GNU++14 @ 2021-10-12 2:13 Ian Rogers 2021-10-12 2:13 ` [PATCH v2 2/2] perf clang: Fixes for more recent LLVM/clang Ian Rogers 2021-10-12 3:09 ` [PATCH v2 1/2] tools: Bump minimum LLVM C++ std to GNU++14 Fāng-ruì Sòng 0 siblings, 2 replies; 6+ messages in thread From: Ian Rogers @ 2021-10-12 2:13 UTC (permalink / raw) To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo, Mark Rutland, Alexander Shishkin, Jiri Olsa, Namhyung Kim, Nathan Chancellor, Nick Desaulniers, Daniel Borkmann, Leo Yan, Michael Petlan, Sedat Dilek, linux-kernel, linux-perf-users, llvm, Fangrui Song Cc: Ian Rogers LLVM 9 (current release is LLVM 13) moved the minimum C++ version to GNU++14. Bump the version numbers in the feature test and perf build. Signed-off-by: Ian Rogers <irogers@google.com> --- tools/build/feature/Makefile | 6 +++--- tools/perf/Makefile.config | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tools/build/feature/Makefile b/tools/build/feature/Makefile index d024b5204ba0..19f145a35a43 100644 --- a/tools/build/feature/Makefile +++ b/tools/build/feature/Makefile @@ -300,7 +300,7 @@ $(OUTPUT)test-jvmti-cmlr.bin: $(BUILD) $(OUTPUT)test-llvm.bin: - $(BUILDXX) -std=gnu++11 \ + $(BUILDXX) -std=gnu++14 \ -I$(shell $(LLVM_CONFIG) --includedir) \ -L$(shell $(LLVM_CONFIG) --libdir) \ $(shell $(LLVM_CONFIG) --libs Core BPF) \ @@ -308,12 +308,12 @@ $(OUTPUT)test-llvm.bin: > $(@:.bin=.make.output) 2>&1 $(OUTPUT)test-llvm-version.bin: - $(BUILDXX) -std=gnu++11 \ + $(BUILDXX) -std=gnu++14 \ -I$(shell $(LLVM_CONFIG) --includedir) \ > $(@:.bin=.make.output) 2>&1 $(OUTPUT)test-clang.bin: - $(BUILDXX) -std=gnu++11 \ + $(BUILDXX) -std=gnu++14 \ -I$(shell $(LLVM_CONFIG) --includedir) \ -L$(shell $(LLVM_CONFIG) --libdir) \ -Wl,--start-group -lclangBasic -lclangDriver \ diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config index 0ae2e3d8b832..86be3f6ec018 100644 --- a/tools/perf/Makefile.config +++ b/tools/perf/Makefile.config @@ -285,7 +285,7 @@ CORE_CFLAGS += -Wall CORE_CFLAGS += -Wextra CORE_CFLAGS += -std=gnu99 -CXXFLAGS += -std=gnu++11 -fno-exceptions -fno-rtti +CXXFLAGS += -std=gnu++14 -fno-exceptions -fno-rtti CXXFLAGS += -Wall CXXFLAGS += -fno-omit-frame-pointer CXXFLAGS += -ggdb3 -- 2.33.0.882.g93a45727a2-goog ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v2 2/2] perf clang: Fixes for more recent LLVM/clang 2021-10-12 2:13 [PATCH v2 1/2] tools: Bump minimum LLVM C++ std to GNU++14 Ian Rogers @ 2021-10-12 2:13 ` Ian Rogers 2021-10-12 3:06 ` Fāng-ruì Sòng 2021-10-12 3:09 ` [PATCH v2 1/2] tools: Bump minimum LLVM C++ std to GNU++14 Fāng-ruì Sòng 1 sibling, 1 reply; 6+ messages in thread From: Ian Rogers @ 2021-10-12 2:13 UTC (permalink / raw) To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo, Mark Rutland, Alexander Shishkin, Jiri Olsa, Namhyung Kim, Nathan Chancellor, Nick Desaulniers, Daniel Borkmann, Leo Yan, Michael Petlan, Sedat Dilek, linux-kernel, linux-perf-users, llvm, Fangrui Song Cc: Ian Rogers The parameters to two functions and the location of a variable have changed in more recent LLVM/clang releases. Remove the unneecessary -fmessage-length and -ferror-limit flags, the former causes failures like: 58: builtin clang support : 58.1: builtin clang compile C source to IR : --- start --- test child forked, pid 279307 error: unknown argument: '-fmessage-length' 1 error generated. test child finished with -1 Tested with LLVM 6, 8, 9, 10 and 11. Signed-off-by: Ian Rogers <irogers@google.com> --- tools/perf/util/c++/clang.cpp | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/tools/perf/util/c++/clang.cpp b/tools/perf/util/c++/clang.cpp index c8885dfa3667..df7b18fb6b6e 100644 --- a/tools/perf/util/c++/clang.cpp +++ b/tools/perf/util/c++/clang.cpp @@ -43,8 +43,6 @@ createCompilerInvocation(llvm::opt::ArgStringList CFlags, StringRef& Path, "-cc1", "-triple", "bpf-pc-linux", "-fsyntax-only", - "-ferror-limit", "19", - "-fmessage-length", "127", "-O2", "-nostdsysteminc", "-nobuiltininc", @@ -55,7 +53,11 @@ createCompilerInvocation(llvm::opt::ArgStringList CFlags, StringRef& Path, "-x", "c"}; CCArgs.append(CFlags.begin(), CFlags.end()); - CompilerInvocation *CI = tooling::newInvocation(&Diags, CCArgs); + CompilerInvocation *CI = tooling::newInvocation(&Diags, CCArgs +#if CLANG_VERSION_MAJOR >= 11 + ,/*BinaryName=*/nullptr +#endif + ); FrontendOptions& Opts = CI->getFrontendOpts(); Opts.Inputs.clear(); @@ -151,13 +153,16 @@ getBPFObjectFromModule(llvm::Module *Module) legacy::PassManager PM; bool NotAdded; -#if CLANG_VERSION_MAJOR < 7 - NotAdded = TargetMachine->addPassesToEmitFile(PM, ostream, - TargetMachine::CGFT_ObjectFile); + NotAdded = TargetMachine->addPassesToEmitFile(PM, ostream +#if CLANG_VERSION_MAJOR >= 7 + , /*DwoOut=*/nullptr +#endif +#if CLANG_VERSION_MAJOR < 10 + , TargetMachine::CGFT_ObjectFile #else - NotAdded = TargetMachine->addPassesToEmitFile(PM, ostream, nullptr, - TargetMachine::CGFT_ObjectFile); + , llvm::CGFT_ObjectFile #endif + ); if (NotAdded) { llvm::errs() << "TargetMachine can't emit a file of this type\n"; return std::unique_ptr<llvm::SmallVectorImpl<char>>(nullptr); -- 2.33.0.882.g93a45727a2-goog ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v2 2/2] perf clang: Fixes for more recent LLVM/clang 2021-10-12 2:13 ` [PATCH v2 2/2] perf clang: Fixes for more recent LLVM/clang Ian Rogers @ 2021-10-12 3:06 ` Fāng-ruì Sòng 0 siblings, 0 replies; 6+ messages in thread From: Fāng-ruì Sòng @ 2021-10-12 3:06 UTC (permalink / raw) To: Ian Rogers Cc: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo, Mark Rutland, Alexander Shishkin, Jiri Olsa, Namhyung Kim, Nathan Chancellor, Nick Desaulniers, Daniel Borkmann, Leo Yan, Michael Petlan, Sedat Dilek, linux-kernel, linux-perf-users, llvm On Mon, Oct 11, 2021 at 7:13 PM Ian Rogers <irogers@google.com> wrote: > > The parameters to two functions and the location of a variable have > changed in more recent LLVM/clang releases. > > Remove the unneecessary -fmessage-length and -ferror-limit flags, the > former causes failures like: > > 58: builtin clang support : > 58.1: builtin clang compile C source to IR : > --- start --- > test child forked, pid 279307 > error: unknown argument: '-fmessage-length' > 1 error generated. > test child finished with -1 > > Tested with LLVM 6, 8, 9, 10 and 11. > > Signed-off-by: Ian Rogers <irogers@google.com> > --- > tools/perf/util/c++/clang.cpp | 21 +++++++++++++-------- > 1 file changed, 13 insertions(+), 8 deletions(-) > > diff --git a/tools/perf/util/c++/clang.cpp b/tools/perf/util/c++/clang.cpp > index c8885dfa3667..df7b18fb6b6e 100644 > --- a/tools/perf/util/c++/clang.cpp > +++ b/tools/perf/util/c++/clang.cpp > @@ -43,8 +43,6 @@ createCompilerInvocation(llvm::opt::ArgStringList CFlags, StringRef& Path, > "-cc1", > "-triple", "bpf-pc-linux", > "-fsyntax-only", > - "-ferror-limit", "19", > - "-fmessage-length", "127", > "-O2", > "-nostdsysteminc", > "-nobuiltininc", > @@ -55,7 +53,11 @@ createCompilerInvocation(llvm::opt::ArgStringList CFlags, StringRef& Path, > "-x", "c"}; > > CCArgs.append(CFlags.begin(), CFlags.end()); > - CompilerInvocation *CI = tooling::newInvocation(&Diags, CCArgs); > + CompilerInvocation *CI = tooling::newInvocation(&Diags, CCArgs > +#if CLANG_VERSION_MAJOR >= 11 > + ,/*BinaryName=*/nullptr > +#endif > + ); > > FrontendOptions& Opts = CI->getFrontendOpts(); > Opts.Inputs.clear(); > @@ -151,13 +153,16 @@ getBPFObjectFromModule(llvm::Module *Module) > > legacy::PassManager PM; > bool NotAdded; > -#if CLANG_VERSION_MAJOR < 7 > - NotAdded = TargetMachine->addPassesToEmitFile(PM, ostream, > - TargetMachine::CGFT_ObjectFile); > + NotAdded = TargetMachine->addPassesToEmitFile(PM, ostream > +#if CLANG_VERSION_MAJOR >= 7 > + , /*DwoOut=*/nullptr > +#endif > +#if CLANG_VERSION_MAJOR < 10 > + , TargetMachine::CGFT_ObjectFile > #else > - NotAdded = TargetMachine->addPassesToEmitFile(PM, ostream, nullptr, > - TargetMachine::CGFT_ObjectFile); > + , llvm::CGFT_ObjectFile > #endif > + ); > if (NotAdded) { > llvm::errs() << "TargetMachine can't emit a file of this type\n"; > return std::unique_ptr<llvm::SmallVectorImpl<char>>(nullptr); > -- > 2.33.0.882.g93a45727a2-goog > Thanks for the change:) Reviewed-by: Fangrui Song <maskray@google.com> ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2 1/2] tools: Bump minimum LLVM C++ std to GNU++14 2021-10-12 2:13 [PATCH v2 1/2] tools: Bump minimum LLVM C++ std to GNU++14 Ian Rogers 2021-10-12 2:13 ` [PATCH v2 2/2] perf clang: Fixes for more recent LLVM/clang Ian Rogers @ 2021-10-12 3:09 ` Fāng-ruì Sòng 2021-10-28 22:26 ` Ian Rogers 2021-11-04 12:41 ` Arnaldo Carvalho de Melo 1 sibling, 2 replies; 6+ messages in thread From: Fāng-ruì Sòng @ 2021-10-12 3:09 UTC (permalink / raw) To: Ian Rogers Cc: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo, Mark Rutland, Alexander Shishkin, Jiri Olsa, Namhyung Kim, Nathan Chancellor, Nick Desaulniers, Daniel Borkmann, Leo Yan, Michael Petlan, Sedat Dilek, linux-kernel, linux-perf-users, llvm On Mon, Oct 11, 2021 at 7:13 PM Ian Rogers <irogers@google.com> wrote: > > LLVM 9 (current release is LLVM 13) moved the minimum C++ version to > GNU++14. Bump the version numbers in the feature test and perf build. > > Signed-off-by: Ian Rogers <irogers@google.com> Reviewed-by: Fangrui Song <maskray@google.com> ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2 1/2] tools: Bump minimum LLVM C++ std to GNU++14 2021-10-12 3:09 ` [PATCH v2 1/2] tools: Bump minimum LLVM C++ std to GNU++14 Fāng-ruì Sòng @ 2021-10-28 22:26 ` Ian Rogers 2021-11-04 12:41 ` Arnaldo Carvalho de Melo 1 sibling, 0 replies; 6+ messages in thread From: Ian Rogers @ 2021-10-28 22:26 UTC (permalink / raw) To: Arnaldo Carvalho de Melo Cc: Peter Zijlstra, Ingo Molnar, Mark Rutland, Fāng-ruì Sòng, Alexander Shishkin, Jiri Olsa, Namhyung Kim, Nathan Chancellor, Nick Desaulniers, Daniel Borkmann, Leo Yan, Michael Petlan, Sedat Dilek, linux-kernel, linux-perf-users, llvm Hi Arnaldo, Is there anything you'd like me to do extra for these two patches? Thanks, Ian On Mon, Oct 11, 2021 at 8:09 PM Fāng-ruì Sòng <maskray@google.com> wrote: > > On Mon, Oct 11, 2021 at 7:13 PM Ian Rogers <irogers@google.com> wrote: > > > > LLVM 9 (current release is LLVM 13) moved the minimum C++ version to > > GNU++14. Bump the version numbers in the feature test and perf build. > > > > Signed-off-by: Ian Rogers <irogers@google.com> > > > Reviewed-by: Fangrui Song <maskray@google.com> ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v2 1/2] tools: Bump minimum LLVM C++ std to GNU++14 2021-10-12 3:09 ` [PATCH v2 1/2] tools: Bump minimum LLVM C++ std to GNU++14 Fāng-ruì Sòng 2021-10-28 22:26 ` Ian Rogers @ 2021-11-04 12:41 ` Arnaldo Carvalho de Melo 1 sibling, 0 replies; 6+ messages in thread From: Arnaldo Carvalho de Melo @ 2021-11-04 12:41 UTC (permalink / raw) To: Fāng-ruì Sòng Cc: Ian Rogers, Peter Zijlstra, Ingo Molnar, Mark Rutland, Alexander Shishkin, Jiri Olsa, Namhyung Kim, Nathan Chancellor, Nick Desaulniers, Daniel Borkmann, Leo Yan, Michael Petlan, Sedat Dilek, linux-kernel, linux-perf-users, llvm Em Mon, Oct 11, 2021 at 08:09:01PM -0700, Fāng-ruì Sòng escreveu: > On Mon, Oct 11, 2021 at 7:13 PM Ian Rogers <irogers@google.com> wrote: > > > > LLVM 9 (current release is LLVM 13) moved the minimum C++ version to > > GNU++14. Bump the version numbers in the feature test and perf build. > > > > Signed-off-by: Ian Rogers <irogers@google.com> > > > Reviewed-by: Fangrui Song <maskray@google.com> Thanks, applied both patches. - Arnaldo ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2021-11-04 12:41 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2021-10-12 2:13 [PATCH v2 1/2] tools: Bump minimum LLVM C++ std to GNU++14 Ian Rogers 2021-10-12 2:13 ` [PATCH v2 2/2] perf clang: Fixes for more recent LLVM/clang Ian Rogers 2021-10-12 3:06 ` Fāng-ruì Sòng 2021-10-12 3:09 ` [PATCH v2 1/2] tools: Bump minimum LLVM C++ std to GNU++14 Fāng-ruì Sòng 2021-10-28 22:26 ` Ian Rogers 2021-11-04 12:41 ` Arnaldo Carvalho de Melo
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).