* [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 an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.