* [PATCH bpf-next v3] samples/bpf: Update build procedure for manually compiling LLVM and Clang @ 2021-01-21 5:27 Tiezhu Yang 2021-01-21 5:36 ` Nathan Chancellor 0 siblings, 1 reply; 7+ messages in thread From: Tiezhu Yang @ 2021-01-21 5:27 UTC (permalink / raw) To: Alexei Starovoitov, Daniel Borkmann, Andrii Nakryiko, Martin KaFai Lau, Song Liu, Yonghong Song, John Fastabend, KP Singh, Nathan Chancellor, Nick Desaulniers Cc: netdev, bpf, clang-built-linux, linux-kernel, Xuefeng Li, Fangrui Song The current LLVM and Clang build procedure in samples/bpf/README.rst is out of date. See below that the links are not accessible any more. $ git clone http://llvm.org/git/llvm.git Cloning into 'llvm'... fatal: unable to access 'http://llvm.org/git/llvm.git/': Maximum (20) redirects followed $ git clone --depth 1 http://llvm.org/git/clang.git Cloning into 'clang'... fatal: unable to access 'http://llvm.org/git/clang.git/': Maximum (20) redirects followed The LLVM community has adopted new ways to build the compiler. There are different ways to build LLVM and Clang, the Clang Getting Started page [1] has one way. As Yonghong said, it is better to copy the build procedure in Documentation/bpf/bpf_devel_QA.rst to keep consistent. I verified the procedure and it is proved to be feasible, so we should update README.rst to reflect the reality. At the same time, update the related comment in Makefile. Additionally, as Fangrui said, the dir llvm-project/llvm/build/install is not used, BUILD_SHARED_LIBS=OFF is the default option [2], so also change Documentation/bpf/bpf_devel_QA.rst together. [1] https://clang.llvm.org/get_started.html [2] https://www.llvm.org/docs/CMake.html Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn> Acked-by: Yonghong Song <yhs@fb.com> --- v2: Update the commit message suggested by Yonghong, thank you very much. v3: Remove the default option BUILD_SHARED_LIBS=OFF and just mkdir llvm-project/llvm/build suggested by Fangrui. Documentation/bpf/bpf_devel_QA.rst | 3 +-- samples/bpf/Makefile | 2 +- samples/bpf/README.rst | 16 +++++++++------- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/Documentation/bpf/bpf_devel_QA.rst b/Documentation/bpf/bpf_devel_QA.rst index 5b613d2..18788bb 100644 --- a/Documentation/bpf/bpf_devel_QA.rst +++ b/Documentation/bpf/bpf_devel_QA.rst @@ -506,11 +506,10 @@ that set up, proceed with building the latest LLVM and clang version from the git repositories:: $ git clone https://github.com/llvm/llvm-project.git - $ mkdir -p llvm-project/llvm/build/install + $ mkdir -p llvm-project/llvm/build $ cd llvm-project/llvm/build $ cmake .. -G "Ninja" -DLLVM_TARGETS_TO_BUILD="BPF;X86" \ -DLLVM_ENABLE_PROJECTS="clang" \ - -DBUILD_SHARED_LIBS=OFF \ -DCMAKE_BUILD_TYPE=Release \ -DLLVM_BUILD_RUNTIME=OFF $ ninja diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile index 26fc96c..d061446 100644 --- a/samples/bpf/Makefile +++ b/samples/bpf/Makefile @@ -208,7 +208,7 @@ TPROGLDLIBS_xdpsock += -pthread -lcap TPROGLDLIBS_xsk_fwd += -pthread # Allows pointing LLC/CLANG to a LLVM backend with bpf support, redefine on cmdline: -# make M=samples/bpf/ LLC=~/git/llvm/build/bin/llc CLANG=~/git/llvm/build/bin/clang +# make M=samples/bpf LLC=~/git/llvm-project/llvm/build/bin/llc CLANG=~/git/llvm-project/llvm/build/bin/clang LLC ?= llc CLANG ?= clang OPT ?= opt diff --git a/samples/bpf/README.rst b/samples/bpf/README.rst index dd34b2d..23006cb 100644 --- a/samples/bpf/README.rst +++ b/samples/bpf/README.rst @@ -65,17 +65,19 @@ To generate a smaller llc binary one can use:: Quick sniplet for manually compiling LLVM and clang (build dependencies are cmake and gcc-c++):: - $ git clone http://llvm.org/git/llvm.git - $ cd llvm/tools - $ git clone --depth 1 http://llvm.org/git/clang.git - $ cd ..; mkdir build; cd build - $ cmake .. -DLLVM_TARGETS_TO_BUILD="BPF;X86" - $ make -j $(getconf _NPROCESSORS_ONLN) + $ git clone https://github.com/llvm/llvm-project.git + $ mkdir -p llvm-project/llvm/build + $ cd llvm-project/llvm/build + $ cmake .. -G "Ninja" -DLLVM_TARGETS_TO_BUILD="BPF;X86" \ + -DLLVM_ENABLE_PROJECTS="clang" \ + -DCMAKE_BUILD_TYPE=Release \ + -DLLVM_BUILD_RUNTIME=OFF + $ ninja It is also possible to point make to the newly compiled 'llc' or 'clang' command via redefining LLC or CLANG on the make command line:: - make M=samples/bpf LLC=~/git/llvm/build/bin/llc CLANG=~/git/llvm/build/bin/clang + make M=samples/bpf LLC=~/git/llvm-project/llvm/build/bin/llc CLANG=~/git/llvm-project/llvm/build/bin/clang Cross compiling samples ----------------------- -- 2.1.0 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH bpf-next v3] samples/bpf: Update build procedure for manually compiling LLVM and Clang 2021-01-21 5:27 [PATCH bpf-next v3] samples/bpf: Update build procedure for manually compiling LLVM and Clang Tiezhu Yang @ 2021-01-21 5:36 ` Nathan Chancellor 2021-01-21 8:08 ` Andrii Nakryiko 0 siblings, 1 reply; 7+ messages in thread From: Nathan Chancellor @ 2021-01-21 5:36 UTC (permalink / raw) To: Tiezhu Yang Cc: Alexei Starovoitov, Daniel Borkmann, Andrii Nakryiko, Martin KaFai Lau, Song Liu, Yonghong Song, John Fastabend, KP Singh, Nick Desaulniers, netdev, bpf, clang-built-linux, linux-kernel, Xuefeng Li, Fangrui Song On Thu, Jan 21, 2021 at 01:27:35PM +0800, Tiezhu Yang wrote: > The current LLVM and Clang build procedure in samples/bpf/README.rst is > out of date. See below that the links are not accessible any more. > > $ git clone http://llvm.org/git/llvm.git > Cloning into 'llvm'... > fatal: unable to access 'http://llvm.org/git/llvm.git/': Maximum (20) redirects followed > $ git clone --depth 1 http://llvm.org/git/clang.git > Cloning into 'clang'... > fatal: unable to access 'http://llvm.org/git/clang.git/': Maximum (20) redirects followed > > The LLVM community has adopted new ways to build the compiler. There are > different ways to build LLVM and Clang, the Clang Getting Started page [1] > has one way. As Yonghong said, it is better to copy the build procedure > in Documentation/bpf/bpf_devel_QA.rst to keep consistent. > > I verified the procedure and it is proved to be feasible, so we should > update README.rst to reflect the reality. At the same time, update the > related comment in Makefile. > > Additionally, as Fangrui said, the dir llvm-project/llvm/build/install is > not used, BUILD_SHARED_LIBS=OFF is the default option [2], so also change > Documentation/bpf/bpf_devel_QA.rst together. > > [1] https://clang.llvm.org/get_started.html > [2] https://www.llvm.org/docs/CMake.html > > Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn> > Acked-by: Yonghong Song <yhs@fb.com> Reviewed-by: Nathan Chancellor <natechancellor@gmail.com> Small comment below. > --- > > v2: Update the commit message suggested by Yonghong, > thank you very much. > > v3: Remove the default option BUILD_SHARED_LIBS=OFF > and just mkdir llvm-project/llvm/build suggested > by Fangrui. > > Documentation/bpf/bpf_devel_QA.rst | 3 +-- > samples/bpf/Makefile | 2 +- > samples/bpf/README.rst | 16 +++++++++------- > 3 files changed, 11 insertions(+), 10 deletions(-) > > diff --git a/Documentation/bpf/bpf_devel_QA.rst b/Documentation/bpf/bpf_devel_QA.rst > index 5b613d2..18788bb 100644 > --- a/Documentation/bpf/bpf_devel_QA.rst > +++ b/Documentation/bpf/bpf_devel_QA.rst > @@ -506,11 +506,10 @@ that set up, proceed with building the latest LLVM and clang version > from the git repositories:: > > $ git clone https://github.com/llvm/llvm-project.git > - $ mkdir -p llvm-project/llvm/build/install > + $ mkdir -p llvm-project/llvm/build > $ cd llvm-project/llvm/build > $ cmake .. -G "Ninja" -DLLVM_TARGETS_TO_BUILD="BPF;X86" \ > -DLLVM_ENABLE_PROJECTS="clang" \ > - -DBUILD_SHARED_LIBS=OFF \ > -DCMAKE_BUILD_TYPE=Release \ > -DLLVM_BUILD_RUNTIME=OFF > $ ninja > diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile > index 26fc96c..d061446 100644 > --- a/samples/bpf/Makefile > +++ b/samples/bpf/Makefile > @@ -208,7 +208,7 @@ TPROGLDLIBS_xdpsock += -pthread -lcap > TPROGLDLIBS_xsk_fwd += -pthread > > # Allows pointing LLC/CLANG to a LLVM backend with bpf support, redefine on cmdline: > -# make M=samples/bpf/ LLC=~/git/llvm/build/bin/llc CLANG=~/git/llvm/build/bin/clang > +# make M=samples/bpf LLC=~/git/llvm-project/llvm/build/bin/llc CLANG=~/git/llvm-project/llvm/build/bin/clang > LLC ?= llc > CLANG ?= clang > OPT ?= opt > diff --git a/samples/bpf/README.rst b/samples/bpf/README.rst > index dd34b2d..23006cb 100644 > --- a/samples/bpf/README.rst > +++ b/samples/bpf/README.rst > @@ -65,17 +65,19 @@ To generate a smaller llc binary one can use:: > Quick sniplet for manually compiling LLVM and clang > (build dependencies are cmake and gcc-c++):: Technically, ninja is now a build dependency as well, it might be worth mentioning that here (usually the package is ninja or ninja-build). Regardless of whether that is addressed or not (because it is small), feel free to carry forward my tag in any future revisions unless they drastically change. > - $ git clone http://llvm.org/git/llvm.git > - $ cd llvm/tools > - $ git clone --depth 1 http://llvm.org/git/clang.git > - $ cd ..; mkdir build; cd build > - $ cmake .. -DLLVM_TARGETS_TO_BUILD="BPF;X86" > - $ make -j $(getconf _NPROCESSORS_ONLN) > + $ git clone https://github.com/llvm/llvm-project.git > + $ mkdir -p llvm-project/llvm/build > + $ cd llvm-project/llvm/build > + $ cmake .. -G "Ninja" -DLLVM_TARGETS_TO_BUILD="BPF;X86" \ > + -DLLVM_ENABLE_PROJECTS="clang" \ > + -DCMAKE_BUILD_TYPE=Release \ > + -DLLVM_BUILD_RUNTIME=OFF > + $ ninja > > It is also possible to point make to the newly compiled 'llc' or > 'clang' command via redefining LLC or CLANG on the make command line:: > > - make M=samples/bpf LLC=~/git/llvm/build/bin/llc CLANG=~/git/llvm/build/bin/clang > + make M=samples/bpf LLC=~/git/llvm-project/llvm/build/bin/llc CLANG=~/git/llvm-project/llvm/build/bin/clang > > Cross compiling samples > ----------------------- > -- > 2.1.0 > ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH bpf-next v3] samples/bpf: Update build procedure for manually compiling LLVM and Clang 2021-01-21 5:36 ` Nathan Chancellor @ 2021-01-21 8:08 ` Andrii Nakryiko 2021-01-21 8:55 ` Sedat Dilek 2021-01-21 14:23 ` Nathan Chancellor 0 siblings, 2 replies; 7+ messages in thread From: Andrii Nakryiko @ 2021-01-21 8:08 UTC (permalink / raw) To: Nathan Chancellor Cc: Tiezhu Yang, Alexei Starovoitov, Daniel Borkmann, Andrii Nakryiko, Martin KaFai Lau, Song Liu, Yonghong Song, John Fastabend, KP Singh, Nick Desaulniers, Networking, bpf, clang-built-linux, open list, Xuefeng Li, Fangrui Song On Wed, Jan 20, 2021 at 9:36 PM Nathan Chancellor <natechancellor@gmail.com> wrote: > > On Thu, Jan 21, 2021 at 01:27:35PM +0800, Tiezhu Yang wrote: > > The current LLVM and Clang build procedure in samples/bpf/README.rst is > > out of date. See below that the links are not accessible any more. > > > > $ git clone http://llvm.org/git/llvm.git > > Cloning into 'llvm'... > > fatal: unable to access 'http://llvm.org/git/llvm.git/': Maximum (20) redirects followed > > $ git clone --depth 1 http://llvm.org/git/clang.git > > Cloning into 'clang'... > > fatal: unable to access 'http://llvm.org/git/clang.git/': Maximum (20) redirects followed > > > > The LLVM community has adopted new ways to build the compiler. There are > > different ways to build LLVM and Clang, the Clang Getting Started page [1] > > has one way. As Yonghong said, it is better to copy the build procedure > > in Documentation/bpf/bpf_devel_QA.rst to keep consistent. > > > > I verified the procedure and it is proved to be feasible, so we should > > update README.rst to reflect the reality. At the same time, update the > > related comment in Makefile. > > > > Additionally, as Fangrui said, the dir llvm-project/llvm/build/install is > > not used, BUILD_SHARED_LIBS=OFF is the default option [2], so also change > > Documentation/bpf/bpf_devel_QA.rst together. > > > > [1] https://clang.llvm.org/get_started.html > > [2] https://www.llvm.org/docs/CMake.html > > > > Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn> > > Acked-by: Yonghong Song <yhs@fb.com> > > Reviewed-by: Nathan Chancellor <natechancellor@gmail.com> > > Small comment below. > > > --- > > > > v2: Update the commit message suggested by Yonghong, > > thank you very much. > > > > v3: Remove the default option BUILD_SHARED_LIBS=OFF > > and just mkdir llvm-project/llvm/build suggested > > by Fangrui. > > > > Documentation/bpf/bpf_devel_QA.rst | 3 +-- > > samples/bpf/Makefile | 2 +- > > samples/bpf/README.rst | 16 +++++++++------- > > 3 files changed, 11 insertions(+), 10 deletions(-) > > > > diff --git a/Documentation/bpf/bpf_devel_QA.rst b/Documentation/bpf/bpf_devel_QA.rst > > index 5b613d2..18788bb 100644 > > --- a/Documentation/bpf/bpf_devel_QA.rst > > +++ b/Documentation/bpf/bpf_devel_QA.rst > > @@ -506,11 +506,10 @@ that set up, proceed with building the latest LLVM and clang version > > from the git repositories:: > > > > $ git clone https://github.com/llvm/llvm-project.git > > - $ mkdir -p llvm-project/llvm/build/install > > + $ mkdir -p llvm-project/llvm/build > > $ cd llvm-project/llvm/build > > $ cmake .. -G "Ninja" -DLLVM_TARGETS_TO_BUILD="BPF;X86" \ > > -DLLVM_ENABLE_PROJECTS="clang" \ > > - -DBUILD_SHARED_LIBS=OFF \ > > -DCMAKE_BUILD_TYPE=Release \ > > -DLLVM_BUILD_RUNTIME=OFF > > $ ninja > > diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile > > index 26fc96c..d061446 100644 > > --- a/samples/bpf/Makefile > > +++ b/samples/bpf/Makefile > > @@ -208,7 +208,7 @@ TPROGLDLIBS_xdpsock += -pthread -lcap > > TPROGLDLIBS_xsk_fwd += -pthread > > > > # Allows pointing LLC/CLANG to a LLVM backend with bpf support, redefine on cmdline: > > -# make M=samples/bpf/ LLC=~/git/llvm/build/bin/llc CLANG=~/git/llvm/build/bin/clang > > +# make M=samples/bpf LLC=~/git/llvm-project/llvm/build/bin/llc CLANG=~/git/llvm-project/llvm/build/bin/clang > > LLC ?= llc > > CLANG ?= clang > > OPT ?= opt > > diff --git a/samples/bpf/README.rst b/samples/bpf/README.rst > > index dd34b2d..23006cb 100644 > > --- a/samples/bpf/README.rst > > +++ b/samples/bpf/README.rst > > @@ -65,17 +65,19 @@ To generate a smaller llc binary one can use:: > > Quick sniplet for manually compiling LLVM and clang > > (build dependencies are cmake and gcc-c++):: > > Technically, ninja is now a build dependency as well, it might be worth > mentioning that here (usually the package is ninja or ninja-build). it's possible to generate Makefile by passing `-g "Unix Makefiles"`, which would avoid dependency on ninja, no? > > Regardless of whether that is addressed or not (because it is small), > feel free to carry forward my tag in any future revisions unless they > drastically change. > > > - $ git clone http://llvm.org/git/llvm.git > > - $ cd llvm/tools > > - $ git clone --depth 1 http://llvm.org/git/clang.git > > - $ cd ..; mkdir build; cd build > > - $ cmake .. -DLLVM_TARGETS_TO_BUILD="BPF;X86" > > - $ make -j $(getconf _NPROCESSORS_ONLN) > > + $ git clone https://github.com/llvm/llvm-project.git > > + $ mkdir -p llvm-project/llvm/build > > + $ cd llvm-project/llvm/build > > + $ cmake .. -G "Ninja" -DLLVM_TARGETS_TO_BUILD="BPF;X86" \ > > + -DLLVM_ENABLE_PROJECTS="clang" \ > > + -DCMAKE_BUILD_TYPE=Release \ > > + -DLLVM_BUILD_RUNTIME=OFF > > + $ ninja > > > > It is also possible to point make to the newly compiled 'llc' or > > 'clang' command via redefining LLC or CLANG on the make command line:: > > > > - make M=samples/bpf LLC=~/git/llvm/build/bin/llc CLANG=~/git/llvm/build/bin/clang > > + make M=samples/bpf LLC=~/git/llvm-project/llvm/build/bin/llc CLANG=~/git/llvm-project/llvm/build/bin/clang > > > > Cross compiling samples > > ----------------------- > > -- > > 2.1.0 > > ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH bpf-next v3] samples/bpf: Update build procedure for manually compiling LLVM and Clang 2021-01-21 8:08 ` Andrii Nakryiko @ 2021-01-21 8:55 ` Sedat Dilek 2021-01-21 10:54 ` Sedat Dilek 2021-01-21 14:23 ` Nathan Chancellor 1 sibling, 1 reply; 7+ messages in thread From: Sedat Dilek @ 2021-01-21 8:55 UTC (permalink / raw) To: Andrii Nakryiko Cc: Nathan Chancellor, Tiezhu Yang, Alexei Starovoitov, Daniel Borkmann, Andrii Nakryiko, Martin KaFai Lau, Song Liu, Yonghong Song, John Fastabend, KP Singh, Nick Desaulniers, Networking, bpf, clang-built-linux, open list, Xuefeng Li, Fangrui Song On Thu, Jan 21, 2021 at 9:08 AM Andrii Nakryiko <andrii.nakryiko@gmail.com> wrote: > > On Wed, Jan 20, 2021 at 9:36 PM Nathan Chancellor > <natechancellor@gmail.com> wrote: > > > > On Thu, Jan 21, 2021 at 01:27:35PM +0800, Tiezhu Yang wrote: > > > The current LLVM and Clang build procedure in samples/bpf/README.rst is > > > out of date. See below that the links are not accessible any more. > > > > > > $ git clone http://llvm.org/git/llvm.git > > > Cloning into 'llvm'... > > > fatal: unable to access 'http://llvm.org/git/llvm.git/': Maximum (20) redirects followed > > > $ git clone --depth 1 http://llvm.org/git/clang.git > > > Cloning into 'clang'... > > > fatal: unable to access 'http://llvm.org/git/clang.git/': Maximum (20) redirects followed > > > > > > The LLVM community has adopted new ways to build the compiler. There are > > > different ways to build LLVM and Clang, the Clang Getting Started page [1] > > > has one way. As Yonghong said, it is better to copy the build procedure > > > in Documentation/bpf/bpf_devel_QA.rst to keep consistent. > > > > > > I verified the procedure and it is proved to be feasible, so we should > > > update README.rst to reflect the reality. At the same time, update the > > > related comment in Makefile. > > > > > > Additionally, as Fangrui said, the dir llvm-project/llvm/build/install is > > > not used, BUILD_SHARED_LIBS=OFF is the default option [2], so also change > > > Documentation/bpf/bpf_devel_QA.rst together. > > > > > > [1] https://clang.llvm.org/get_started.html > > > [2] https://www.llvm.org/docs/CMake.html > > > > > > Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn> > > > Acked-by: Yonghong Song <yhs@fb.com> > > > > Reviewed-by: Nathan Chancellor <natechancellor@gmail.com> > > > > Small comment below. > > > > > --- > > > > > > v2: Update the commit message suggested by Yonghong, > > > thank you very much. > > > > > > v3: Remove the default option BUILD_SHARED_LIBS=OFF > > > and just mkdir llvm-project/llvm/build suggested > > > by Fangrui. > > > > > > Documentation/bpf/bpf_devel_QA.rst | 3 +-- > > > samples/bpf/Makefile | 2 +- > > > samples/bpf/README.rst | 16 +++++++++------- > > > 3 files changed, 11 insertions(+), 10 deletions(-) > > > > > > diff --git a/Documentation/bpf/bpf_devel_QA.rst b/Documentation/bpf/bpf_devel_QA.rst > > > index 5b613d2..18788bb 100644 > > > --- a/Documentation/bpf/bpf_devel_QA.rst > > > +++ b/Documentation/bpf/bpf_devel_QA.rst > > > @@ -506,11 +506,10 @@ that set up, proceed with building the latest LLVM and clang version > > > from the git repositories:: > > > > > > $ git clone https://github.com/llvm/llvm-project.git > > > - $ mkdir -p llvm-project/llvm/build/install > > > + $ mkdir -p llvm-project/llvm/build > > > $ cd llvm-project/llvm/build > > > $ cmake .. -G "Ninja" -DLLVM_TARGETS_TO_BUILD="BPF;X86" \ > > > -DLLVM_ENABLE_PROJECTS="clang" \ > > > - -DBUILD_SHARED_LIBS=OFF \ > > > -DCMAKE_BUILD_TYPE=Release \ > > > -DLLVM_BUILD_RUNTIME=OFF > > > $ ninja > > > diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile > > > index 26fc96c..d061446 100644 > > > --- a/samples/bpf/Makefile > > > +++ b/samples/bpf/Makefile > > > @@ -208,7 +208,7 @@ TPROGLDLIBS_xdpsock += -pthread -lcap > > > TPROGLDLIBS_xsk_fwd += -pthread > > > > > > # Allows pointing LLC/CLANG to a LLVM backend with bpf support, redefine on cmdline: > > > -# make M=samples/bpf/ LLC=~/git/llvm/build/bin/llc CLANG=~/git/llvm/build/bin/clang > > > +# make M=samples/bpf LLC=~/git/llvm-project/llvm/build/bin/llc CLANG=~/git/llvm-project/llvm/build/bin/clang > > > LLC ?= llc > > > CLANG ?= clang > > > OPT ?= opt > > > diff --git a/samples/bpf/README.rst b/samples/bpf/README.rst > > > index dd34b2d..23006cb 100644 > > > --- a/samples/bpf/README.rst > > > +++ b/samples/bpf/README.rst > > > @@ -65,17 +65,19 @@ To generate a smaller llc binary one can use:: > > > Quick sniplet for manually compiling LLVM and clang > > > (build dependencies are cmake and gcc-c++):: > > > > Technically, ninja is now a build dependency as well, it might be worth > > mentioning that here (usually the package is ninja or ninja-build). > > it's possible to generate Makefile by passing `-g "Unix Makefiles"`, > which would avoid dependency on ninja, no? > AFAICS, cmake is now the default and "Unix Makefiles" deprecated with newer versions of LLVM/Clang. - Sedat - > > > > Regardless of whether that is addressed or not (because it is small), > > feel free to carry forward my tag in any future revisions unless they > > drastically change. > > > > > - $ git clone http://llvm.org/git/llvm.git > > > - $ cd llvm/tools > > > - $ git clone --depth 1 http://llvm.org/git/clang.git > > > - $ cd ..; mkdir build; cd build > > > - $ cmake .. -DLLVM_TARGETS_TO_BUILD="BPF;X86" > > > - $ make -j $(getconf _NPROCESSORS_ONLN) > > > + $ git clone https://github.com/llvm/llvm-project.git > > > + $ mkdir -p llvm-project/llvm/build > > > + $ cd llvm-project/llvm/build > > > + $ cmake .. -G "Ninja" -DLLVM_TARGETS_TO_BUILD="BPF;X86" \ > > > + -DLLVM_ENABLE_PROJECTS="clang" \ > > > + -DCMAKE_BUILD_TYPE=Release \ > > > + -DLLVM_BUILD_RUNTIME=OFF > > > + $ ninja > > > > > > It is also possible to point make to the newly compiled 'llc' or > > > 'clang' command via redefining LLC or CLANG on the make command line:: > > > > > > - make M=samples/bpf LLC=~/git/llvm/build/bin/llc CLANG=~/git/llvm/build/bin/clang > > > + make M=samples/bpf LLC=~/git/llvm-project/llvm/build/bin/llc CLANG=~/git/llvm-project/llvm/build/bin/clang > > > > > > Cross compiling samples > > > ----------------------- > > > -- > > > 2.1.0 > > > > > -- > You received this message because you are subscribed to the Google Groups "Clang Built Linux" group. > To unsubscribe from this group and stop receiving emails from it, send an email to clang-built-linux+unsubscribe@googlegroups.com. > To view this discussion on the web visit https://groups.google.com/d/msgid/clang-built-linux/CAEf4BzbZxuy8LRmngRzLZ3VTnrDw%3DRf70Ghkbu1a5%2BfNpQud5Q%40mail.gmail.com. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH bpf-next v3] samples/bpf: Update build procedure for manually compiling LLVM and Clang 2021-01-21 8:55 ` Sedat Dilek @ 2021-01-21 10:54 ` Sedat Dilek 0 siblings, 0 replies; 7+ messages in thread From: Sedat Dilek @ 2021-01-21 10:54 UTC (permalink / raw) To: Andrii Nakryiko Cc: Nathan Chancellor, Tiezhu Yang, Alexei Starovoitov, Daniel Borkmann, Andrii Nakryiko, Martin KaFai Lau, Song Liu, Yonghong Song, John Fastabend, KP Singh, Nick Desaulniers, Networking, bpf, clang-built-linux, open list, Xuefeng Li, Fangrui Song On Thu, Jan 21, 2021 at 9:55 AM Sedat Dilek <sedat.dilek@gmail.com> wrote: > > On Thu, Jan 21, 2021 at 9:08 AM Andrii Nakryiko > <andrii.nakryiko@gmail.com> wrote: > > > > On Wed, Jan 20, 2021 at 9:36 PM Nathan Chancellor > > <natechancellor@gmail.com> wrote: > > > > > > On Thu, Jan 21, 2021 at 01:27:35PM +0800, Tiezhu Yang wrote: > > > > The current LLVM and Clang build procedure in samples/bpf/README.rst is > > > > out of date. See below that the links are not accessible any more. > > > > > > > > $ git clone http://llvm.org/git/llvm.git > > > > Cloning into 'llvm'... > > > > fatal: unable to access 'http://llvm.org/git/llvm.git/': Maximum (20) redirects followed > > > > $ git clone --depth 1 http://llvm.org/git/clang.git > > > > Cloning into 'clang'... > > > > fatal: unable to access 'http://llvm.org/git/clang.git/': Maximum (20) redirects followed > > > > > > > > The LLVM community has adopted new ways to build the compiler. There are > > > > different ways to build LLVM and Clang, the Clang Getting Started page [1] > > > > has one way. As Yonghong said, it is better to copy the build procedure > > > > in Documentation/bpf/bpf_devel_QA.rst to keep consistent. > > > > > > > > I verified the procedure and it is proved to be feasible, so we should > > > > update README.rst to reflect the reality. At the same time, update the > > > > related comment in Makefile. > > > > > > > > Additionally, as Fangrui said, the dir llvm-project/llvm/build/install is > > > > not used, BUILD_SHARED_LIBS=OFF is the default option [2], so also change > > > > Documentation/bpf/bpf_devel_QA.rst together. > > > > > > > > [1] https://clang.llvm.org/get_started.html > > > > [2] https://www.llvm.org/docs/CMake.html > > > > > > > > Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn> > > > > Acked-by: Yonghong Song <yhs@fb.com> > > > > > > Reviewed-by: Nathan Chancellor <natechancellor@gmail.com> > > > > > > Small comment below. > > > > > > > --- > > > > > > > > v2: Update the commit message suggested by Yonghong, > > > > thank you very much. > > > > > > > > v3: Remove the default option BUILD_SHARED_LIBS=OFF > > > > and just mkdir llvm-project/llvm/build suggested > > > > by Fangrui. > > > > > > > > Documentation/bpf/bpf_devel_QA.rst | 3 +-- > > > > samples/bpf/Makefile | 2 +- > > > > samples/bpf/README.rst | 16 +++++++++------- > > > > 3 files changed, 11 insertions(+), 10 deletions(-) > > > > > > > > diff --git a/Documentation/bpf/bpf_devel_QA.rst b/Documentation/bpf/bpf_devel_QA.rst > > > > index 5b613d2..18788bb 100644 > > > > --- a/Documentation/bpf/bpf_devel_QA.rst > > > > +++ b/Documentation/bpf/bpf_devel_QA.rst > > > > @@ -506,11 +506,10 @@ that set up, proceed with building the latest LLVM and clang version > > > > from the git repositories:: > > > > > > > > $ git clone https://github.com/llvm/llvm-project.git > > > > - $ mkdir -p llvm-project/llvm/build/install > > > > + $ mkdir -p llvm-project/llvm/build > > > > $ cd llvm-project/llvm/build > > > > $ cmake .. -G "Ninja" -DLLVM_TARGETS_TO_BUILD="BPF;X86" \ > > > > -DLLVM_ENABLE_PROJECTS="clang" \ > > > > - -DBUILD_SHARED_LIBS=OFF \ > > > > -DCMAKE_BUILD_TYPE=Release \ > > > > -DLLVM_BUILD_RUNTIME=OFF > > > > $ ninja > > > > diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile > > > > index 26fc96c..d061446 100644 > > > > --- a/samples/bpf/Makefile > > > > +++ b/samples/bpf/Makefile > > > > @@ -208,7 +208,7 @@ TPROGLDLIBS_xdpsock += -pthread -lcap > > > > TPROGLDLIBS_xsk_fwd += -pthread > > > > > > > > # Allows pointing LLC/CLANG to a LLVM backend with bpf support, redefine on cmdline: > > > > -# make M=samples/bpf/ LLC=~/git/llvm/build/bin/llc CLANG=~/git/llvm/build/bin/clang > > > > +# make M=samples/bpf LLC=~/git/llvm-project/llvm/build/bin/llc CLANG=~/git/llvm-project/llvm/build/bin/clang > > > > LLC ?= llc > > > > CLANG ?= clang > > > > OPT ?= opt > > > > diff --git a/samples/bpf/README.rst b/samples/bpf/README.rst > > > > index dd34b2d..23006cb 100644 > > > > --- a/samples/bpf/README.rst > > > > +++ b/samples/bpf/README.rst > > > > @@ -65,17 +65,19 @@ To generate a smaller llc binary one can use:: > > > > Quick sniplet for manually compiling LLVM and clang > > > > (build dependencies are cmake and gcc-c++):: > > > > > > Technically, ninja is now a build dependency as well, it might be worth > > > mentioning that here (usually the package is ninja or ninja-build). > > > > it's possible to generate Makefile by passing `-g "Unix Makefiles"`, > > which would avoid dependency on ninja, no? > > > > AFAICS, cmake is now the default and "Unix Makefiles" deprecated with > newer versions of LLVM/Clang. > Hmm, I mixed it up... This is about the cmake-generator (GNU/make was deprecated/abandoned). Cannot say I use "ninja" - it's fast. Just as a hint for a fast build of LLVM/Clang: Use tc-build together with stage1-only (build and install) options. - Sedat - [1] https://github.com/ClangBuiltLinux/tc-build > > > > > > > Regardless of whether that is addressed or not (because it is small), > > > feel free to carry forward my tag in any future revisions unless they > > > drastically change. > > > > > > > - $ git clone http://llvm.org/git/llvm.git > > > > - $ cd llvm/tools > > > > - $ git clone --depth 1 http://llvm.org/git/clang.git > > > > - $ cd ..; mkdir build; cd build > > > > - $ cmake .. -DLLVM_TARGETS_TO_BUILD="BPF;X86" > > > > - $ make -j $(getconf _NPROCESSORS_ONLN) > > > > + $ git clone https://github.com/llvm/llvm-project.git > > > > + $ mkdir -p llvm-project/llvm/build > > > > + $ cd llvm-project/llvm/build > > > > + $ cmake .. -G "Ninja" -DLLVM_TARGETS_TO_BUILD="BPF;X86" \ > > > > + -DLLVM_ENABLE_PROJECTS="clang" \ > > > > + -DCMAKE_BUILD_TYPE=Release \ > > > > + -DLLVM_BUILD_RUNTIME=OFF > > > > + $ ninja > > > > > > > > It is also possible to point make to the newly compiled 'llc' or > > > > 'clang' command via redefining LLC or CLANG on the make command line:: > > > > > > > > - make M=samples/bpf LLC=~/git/llvm/build/bin/llc CLANG=~/git/llvm/build/bin/clang > > > > + make M=samples/bpf LLC=~/git/llvm-project/llvm/build/bin/llc CLANG=~/git/llvm-project/llvm/build/bin/clang > > > > > > > > Cross compiling samples > > > > ----------------------- > > > > -- > > > > 2.1.0 > > > > > > > > -- > > You received this message because you are subscribed to the Google Groups "Clang Built Linux" group. > > To unsubscribe from this group and stop receiving emails from it, send an email to clang-built-linux+unsubscribe@googlegroups.com. > > To view this discussion on the web visit https://groups.google.com/d/msgid/clang-built-linux/CAEf4BzbZxuy8LRmngRzLZ3VTnrDw%3DRf70Ghkbu1a5%2BfNpQud5Q%40mail.gmail.com. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH bpf-next v3] samples/bpf: Update build procedure for manually compiling LLVM and Clang 2021-01-21 8:08 ` Andrii Nakryiko 2021-01-21 8:55 ` Sedat Dilek @ 2021-01-21 14:23 ` Nathan Chancellor 2021-01-21 15:01 ` Yonghong Song 1 sibling, 1 reply; 7+ messages in thread From: Nathan Chancellor @ 2021-01-21 14:23 UTC (permalink / raw) To: Andrii Nakryiko Cc: Tiezhu Yang, Alexei Starovoitov, Daniel Borkmann, Andrii Nakryiko, Martin KaFai Lau, Song Liu, Yonghong Song, John Fastabend, KP Singh, Nick Desaulniers, Networking, bpf, clang-built-linux, open list, Xuefeng Li, Fangrui Song On Thu, Jan 21, 2021 at 12:08:31AM -0800, Andrii Nakryiko wrote: > On Wed, Jan 20, 2021 at 9:36 PM Nathan Chancellor > <natechancellor@gmail.com> wrote: > > > > On Thu, Jan 21, 2021 at 01:27:35PM +0800, Tiezhu Yang wrote: > > > The current LLVM and Clang build procedure in samples/bpf/README.rst is > > > out of date. See below that the links are not accessible any more. > > > > > > $ git clone http://llvm.org/git/llvm.git > > > Cloning into 'llvm'... > > > fatal: unable to access 'http://llvm.org/git/llvm.git/': Maximum (20) redirects followed > > > $ git clone --depth 1 http://llvm.org/git/clang.git > > > Cloning into 'clang'... > > > fatal: unable to access 'http://llvm.org/git/clang.git/': Maximum (20) redirects followed > > > > > > The LLVM community has adopted new ways to build the compiler. There are > > > different ways to build LLVM and Clang, the Clang Getting Started page [1] > > > has one way. As Yonghong said, it is better to copy the build procedure > > > in Documentation/bpf/bpf_devel_QA.rst to keep consistent. > > > > > > I verified the procedure and it is proved to be feasible, so we should > > > update README.rst to reflect the reality. At the same time, update the > > > related comment in Makefile. > > > > > > Additionally, as Fangrui said, the dir llvm-project/llvm/build/install is > > > not used, BUILD_SHARED_LIBS=OFF is the default option [2], so also change > > > Documentation/bpf/bpf_devel_QA.rst together. > > > > > > [1] https://clang.llvm.org/get_started.html > > > [2] https://www.llvm.org/docs/CMake.html > > > > > > Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn> > > > Acked-by: Yonghong Song <yhs@fb.com> > > > > Reviewed-by: Nathan Chancellor <natechancellor@gmail.com> > > > > Small comment below. > > > > > --- > > > > > > v2: Update the commit message suggested by Yonghong, > > > thank you very much. > > > > > > v3: Remove the default option BUILD_SHARED_LIBS=OFF > > > and just mkdir llvm-project/llvm/build suggested > > > by Fangrui. > > > > > > Documentation/bpf/bpf_devel_QA.rst | 3 +-- > > > samples/bpf/Makefile | 2 +- > > > samples/bpf/README.rst | 16 +++++++++------- > > > 3 files changed, 11 insertions(+), 10 deletions(-) > > > > > > diff --git a/Documentation/bpf/bpf_devel_QA.rst b/Documentation/bpf/bpf_devel_QA.rst > > > index 5b613d2..18788bb 100644 > > > --- a/Documentation/bpf/bpf_devel_QA.rst > > > +++ b/Documentation/bpf/bpf_devel_QA.rst > > > @@ -506,11 +506,10 @@ that set up, proceed with building the latest LLVM and clang version > > > from the git repositories:: > > > > > > $ git clone https://github.com/llvm/llvm-project.git > > > - $ mkdir -p llvm-project/llvm/build/install > > > + $ mkdir -p llvm-project/llvm/build > > > $ cd llvm-project/llvm/build > > > $ cmake .. -G "Ninja" -DLLVM_TARGETS_TO_BUILD="BPF;X86" \ > > > -DLLVM_ENABLE_PROJECTS="clang" \ > > > - -DBUILD_SHARED_LIBS=OFF \ > > > -DCMAKE_BUILD_TYPE=Release \ > > > -DLLVM_BUILD_RUNTIME=OFF > > > $ ninja > > > diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile > > > index 26fc96c..d061446 100644 > > > --- a/samples/bpf/Makefile > > > +++ b/samples/bpf/Makefile > > > @@ -208,7 +208,7 @@ TPROGLDLIBS_xdpsock += -pthread -lcap > > > TPROGLDLIBS_xsk_fwd += -pthread > > > > > > # Allows pointing LLC/CLANG to a LLVM backend with bpf support, redefine on cmdline: > > > -# make M=samples/bpf/ LLC=~/git/llvm/build/bin/llc CLANG=~/git/llvm/build/bin/clang > > > +# make M=samples/bpf LLC=~/git/llvm-project/llvm/build/bin/llc CLANG=~/git/llvm-project/llvm/build/bin/clang > > > LLC ?= llc > > > CLANG ?= clang > > > OPT ?= opt > > > diff --git a/samples/bpf/README.rst b/samples/bpf/README.rst > > > index dd34b2d..23006cb 100644 > > > --- a/samples/bpf/README.rst > > > +++ b/samples/bpf/README.rst > > > @@ -65,17 +65,19 @@ To generate a smaller llc binary one can use:: > > > Quick sniplet for manually compiling LLVM and clang > > > (build dependencies are cmake and gcc-c++):: > > > > Technically, ninja is now a build dependency as well, it might be worth > > mentioning that here (usually the package is ninja or ninja-build). > > it's possible to generate Makefile by passing `-g "Unix Makefiles"`, > which would avoid dependency on ninja, no? Yes, although I am fairly certain that building with ninja is quicker so I would recommend keeping it. One small extra dependency never killed anyone plus ninja is becoming more common nowadays :) > > Regardless of whether that is addressed or not (because it is small), > > feel free to carry forward my tag in any future revisions unless they > > drastically change. > > > > > - $ git clone http://llvm.org/git/llvm.git > > > - $ cd llvm/tools > > > - $ git clone --depth 1 http://llvm.org/git/clang.git > > > - $ cd ..; mkdir build; cd build > > > - $ cmake .. -DLLVM_TARGETS_TO_BUILD="BPF;X86" > > > - $ make -j $(getconf _NPROCESSORS_ONLN) > > > + $ git clone https://github.com/llvm/llvm-project.git > > > + $ mkdir -p llvm-project/llvm/build > > > + $ cd llvm-project/llvm/build > > > + $ cmake .. -G "Ninja" -DLLVM_TARGETS_TO_BUILD="BPF;X86" \ > > > + -DLLVM_ENABLE_PROJECTS="clang" \ > > > + -DCMAKE_BUILD_TYPE=Release \ > > > + -DLLVM_BUILD_RUNTIME=OFF > > > + $ ninja > > > > > > It is also possible to point make to the newly compiled 'llc' or > > > 'clang' command via redefining LLC or CLANG on the make command line:: > > > > > > - make M=samples/bpf LLC=~/git/llvm/build/bin/llc CLANG=~/git/llvm/build/bin/clang > > > + make M=samples/bpf LLC=~/git/llvm-project/llvm/build/bin/llc CLANG=~/git/llvm-project/llvm/build/bin/clang > > > > > > Cross compiling samples > > > ----------------------- > > > -- > > > 2.1.0 > > > ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH bpf-next v3] samples/bpf: Update build procedure for manually compiling LLVM and Clang 2021-01-21 14:23 ` Nathan Chancellor @ 2021-01-21 15:01 ` Yonghong Song 0 siblings, 0 replies; 7+ messages in thread From: Yonghong Song @ 2021-01-21 15:01 UTC (permalink / raw) To: Nathan Chancellor, Andrii Nakryiko Cc: Tiezhu Yang, Alexei Starovoitov, Daniel Borkmann, Andrii Nakryiko, Martin KaFai Lau, Song Liu, John Fastabend, KP Singh, Nick Desaulniers, Networking, bpf, clang-built-linux, open list, Xuefeng Li, Fangrui Song On 1/21/21 6:23 AM, Nathan Chancellor wrote: > On Thu, Jan 21, 2021 at 12:08:31AM -0800, Andrii Nakryiko wrote: >> On Wed, Jan 20, 2021 at 9:36 PM Nathan Chancellor >> <natechancellor@gmail.com> wrote: >>> >>> On Thu, Jan 21, 2021 at 01:27:35PM +0800, Tiezhu Yang wrote: >>>> The current LLVM and Clang build procedure in samples/bpf/README.rst is >>>> out of date. See below that the links are not accessible any more. >>>> >>>> $ git clone http://llvm.org/git/llvm.git >>>> Cloning into 'llvm'... >>>> fatal: unable to access 'http://llvm.org/git/llvm.git/ ': Maximum (20) redirects followed >>>> $ git clone --depth 1 http://llvm.org/git/clang.git >>>> Cloning into 'clang'... >>>> fatal: unable to access 'http://llvm.org/git/clang.git/ ': Maximum (20) redirects followed >>>> >>>> The LLVM community has adopted new ways to build the compiler. There are >>>> different ways to build LLVM and Clang, the Clang Getting Started page [1] >>>> has one way. As Yonghong said, it is better to copy the build procedure >>>> in Documentation/bpf/bpf_devel_QA.rst to keep consistent. >>>> >>>> I verified the procedure and it is proved to be feasible, so we should >>>> update README.rst to reflect the reality. At the same time, update the >>>> related comment in Makefile. >>>> >>>> Additionally, as Fangrui said, the dir llvm-project/llvm/build/install is >>>> not used, BUILD_SHARED_LIBS=OFF is the default option [2], so also change >>>> Documentation/bpf/bpf_devel_QA.rst together. >>>> >>>> [1] https://clang.llvm.org/get_started.html >>>> [2] https://www.llvm.org/docs/CMake.html >>>> >>>> Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn> >>>> Acked-by: Yonghong Song <yhs@fb.com> >>> >>> Reviewed-by: Nathan Chancellor <natechancellor@gmail.com> >>> >>> Small comment below. >>> >>>> --- >>>> >>>> v2: Update the commit message suggested by Yonghong, >>>> thank you very much. >>>> >>>> v3: Remove the default option BUILD_SHARED_LIBS=OFF >>>> and just mkdir llvm-project/llvm/build suggested >>>> by Fangrui. >>>> >>>> Documentation/bpf/bpf_devel_QA.rst | 3 +-- >>>> samples/bpf/Makefile | 2 +- >>>> samples/bpf/README.rst | 16 +++++++++------- >>>> 3 files changed, 11 insertions(+), 10 deletions(-) >>>> >>>> diff --git a/Documentation/bpf/bpf_devel_QA.rst b/Documentation/bpf/bpf_devel_QA.rst >>>> index 5b613d2..18788bb 100644 >>>> --- a/Documentation/bpf/bpf_devel_QA.rst >>>> +++ b/Documentation/bpf/bpf_devel_QA.rst >>>> @@ -506,11 +506,10 @@ that set up, proceed with building the latest LLVM and clang version >>>> from the git repositories:: >>>> >>>> $ git clone https://github.com/llvm/llvm-project.git >>>> - $ mkdir -p llvm-project/llvm/build/install >>>> + $ mkdir -p llvm-project/llvm/build >>>> $ cd llvm-project/llvm/build >>>> $ cmake .. -G "Ninja" -DLLVM_TARGETS_TO_BUILD="BPF;X86" \ >>>> -DLLVM_ENABLE_PROJECTS="clang" \ >>>> - -DBUILD_SHARED_LIBS=OFF \ >>>> -DCMAKE_BUILD_TYPE=Release \ >>>> -DLLVM_BUILD_RUNTIME=OFF >>>> $ ninja >>>> diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile >>>> index 26fc96c..d061446 100644 >>>> --- a/samples/bpf/Makefile >>>> +++ b/samples/bpf/Makefile >>>> @@ -208,7 +208,7 @@ TPROGLDLIBS_xdpsock += -pthread -lcap >>>> TPROGLDLIBS_xsk_fwd += -pthread >>>> >>>> # Allows pointing LLC/CLANG to a LLVM backend with bpf support, redefine on cmdline: >>>> -# make M=samples/bpf/ LLC=~/git/llvm/build/bin/llc CLANG=~/git/llvm/build/bin/clang >>>> +# make M=samples/bpf LLC=~/git/llvm-project/llvm/build/bin/llc CLANG=~/git/llvm-project/llvm/build/bin/clang >>>> LLC ?= llc >>>> CLANG ?= clang >>>> OPT ?= opt >>>> diff --git a/samples/bpf/README.rst b/samples/bpf/README.rst >>>> index dd34b2d..23006cb 100644 >>>> --- a/samples/bpf/README.rst >>>> +++ b/samples/bpf/README.rst >>>> @@ -65,17 +65,19 @@ To generate a smaller llc binary one can use:: >>>> Quick sniplet for manually compiling LLVM and clang >>>> (build dependencies are cmake and gcc-c++):: >>> >>> Technically, ninja is now a build dependency as well, it might be worth >>> mentioning that here (usually the package is ninja or ninja-build). >> >> it's possible to generate Makefile by passing `-g "Unix Makefiles"`, >> which would avoid dependency on ninja, no? > > Yes, although I am fairly certain that building with ninja is quicker so > I would recommend keeping it. One small extra dependency never killed > anyone plus ninja is becoming more common nowadays :) Agree. Let us use 'ninja' here, which is widely used in llvm community for llvm-project build compared to other alternatives. > >>> Regardless of whether that is addressed or not (because it is small), >>> feel free to carry forward my tag in any future revisions unless they >>> drastically change. >>> >>>> - $ git clone http://llvm.org/git/llvm.git >>>> - $ cd llvm/tools >>>> - $ git clone --depth 1 http://llvm.org/git/clang.git >>>> - $ cd ..; mkdir build; cd build >>>> - $ cmake .. -DLLVM_TARGETS_TO_BUILD="BPF;X86" >>>> - $ make -j $(getconf _NPROCESSORS_ONLN) >>>> + $ git clone https://github.com/llvm/llvm-project.git >>>> + $ mkdir -p llvm-project/llvm/build >>>> + $ cd llvm-project/llvm/build >>>> + $ cmake .. -G "Ninja" -DLLVM_TARGETS_TO_BUILD="BPF;X86" \ >>>> + -DLLVM_ENABLE_PROJECTS="clang" \ >>>> + -DCMAKE_BUILD_TYPE=Release \ >>>> + -DLLVM_BUILD_RUNTIME=OFF >>>> + $ ninja >>>> >>>> It is also possible to point make to the newly compiled 'llc' or >>>> 'clang' command via redefining LLC or CLANG on the make command line:: >>>> >>>> - make M=samples/bpf LLC=~/git/llvm/build/bin/llc CLANG=~/git/llvm/build/bin/clang >>>> + make M=samples/bpf LLC=~/git/llvm-project/llvm/build/bin/llc CLANG=~/git/llvm-project/llvm/build/bin/clang >>>> >>>> Cross compiling samples >>>> ----------------------- >>>> -- >>>> 2.1.0 >>>> ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2021-01-21 15:06 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-01-21 5:27 [PATCH bpf-next v3] samples/bpf: Update build procedure for manually compiling LLVM and Clang Tiezhu Yang 2021-01-21 5:36 ` Nathan Chancellor 2021-01-21 8:08 ` Andrii Nakryiko 2021-01-21 8:55 ` Sedat Dilek 2021-01-21 10:54 ` Sedat Dilek 2021-01-21 14:23 ` Nathan Chancellor 2021-01-21 15:01 ` Yonghong Song
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).