From: Tiezhu Yang <yangtiezhu@loongson.cn> Date: 2021-01-21 05:29:58
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 <redacted>
---
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(-)
@@ -208,7 +208,7 @@ TPROGLDLIBS_xdpsock += -pthread -lcapTPROGLDLIBS_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/clangLLC?=llcCLANG?=clangOPT?=opt
@@ -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 -----------------------
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 <redacted>
Reviewed-by: Nathan Chancellor <redacted>
Small comment below.
quoted hunk
---
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(-)
@@ -208,7 +208,7 @@ TPROGLDLIBS_xdpsock += -pthread -lcapTPROGLDLIBS_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/clangLLC?=llcCLANG?=clangOPT?=opt
@@ -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
On Wed, Jan 20, 2021 at 9:36 PM Nathan Chancellor
[off-list ref] wrote:
On Thu, Jan 21, 2021 at 01:27:35PM +0800, Tiezhu Yang wrote:
quoted
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 <redacted>
Reviewed-by: Nathan Chancellor <redacted>
Small comment below.
quoted
---
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(-)
@@ -208,7 +208,7 @@ TPROGLDLIBS_xdpsock += -pthread -lcapTPROGLDLIBS_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/clangLLC?=llcCLANG?=clangOPT?=opt
@@ -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.
quoted
- $ 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
On Thu, Jan 21, 2021 at 9:08 AM Andrii Nakryiko
[off-list ref] wrote:
On Wed, Jan 20, 2021 at 9:36 PM Nathan Chancellor
[off-list ref] wrote:
quoted
On Thu, Jan 21, 2021 at 01:27:35PM +0800, Tiezhu Yang wrote:
quoted
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 <redacted>
Reviewed-by: Nathan Chancellor <redacted>
Small comment below.
quoted
---
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(-)
@@ -208,7 +208,7 @@ TPROGLDLIBS_xdpsock += -pthread -lcapTPROGLDLIBS_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/clangLLC?=llcCLANG?=clangOPT?=opt
@@ -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 -
quoted
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.
quoted
- $ 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
On Thu, Jan 21, 2021 at 9:55 AM Sedat Dilek [off-list ref] wrote:
On Thu, Jan 21, 2021 at 9:08 AM Andrii Nakryiko
[off-list ref] wrote:
quoted
On Wed, Jan 20, 2021 at 9:36 PM Nathan Chancellor
[off-list ref] wrote:
quoted
On Thu, Jan 21, 2021 at 01:27:35PM +0800, Tiezhu Yang wrote:
quoted
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 <redacted>
Reviewed-by: Nathan Chancellor <redacted>
Small comment below.
quoted
---
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(-)
@@ -208,7 +208,7 @@ TPROGLDLIBS_xdpsock += -pthread -lcapTPROGLDLIBS_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/clangLLC?=llcCLANG?=clangOPT?=opt
@@ -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
quoted
quoted
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.
quoted
- $ 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
On Thu, Jan 21, 2021 at 12:08:31AM -0800, Andrii Nakryiko wrote:
On Wed, Jan 20, 2021 at 9:36 PM Nathan Chancellor
[off-list ref] wrote:
quoted
On Thu, Jan 21, 2021 at 01:27:35PM +0800, Tiezhu Yang wrote:
quoted
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 <redacted>
Reviewed-by: Nathan Chancellor <redacted>
Small comment below.
quoted
---
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(-)
@@ -208,7 +208,7 @@ TPROGLDLIBS_xdpsock += -pthread -lcapTPROGLDLIBS_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/clangLLC?=llcCLANG?=clangOPT?=opt
@@ -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 :)
quoted
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.
quoted
- $ 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
From: Yonghong Song <hidden> Date: 2021-01-21 15:06:49
On 1/21/21 6:23 AM, Nathan Chancellor wrote:
On Thu, Jan 21, 2021 at 12:08:31AM -0800, Andrii Nakryiko wrote:
quoted
On Wed, Jan 20, 2021 at 9:36 PM Nathan Chancellor
[off-list ref] wrote:
quoted
On Thu, Jan 21, 2021 at 01:27:35PM +0800, Tiezhu Yang wrote:
quoted
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 <redacted>
Reviewed-by: Nathan Chancellor <redacted>
Small comment below.
quoted
---
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(-)
@@ -208,7 +208,7 @@ TPROGLDLIBS_xdpsock += -pthread -lcapTPROGLDLIBS_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/clangLLC?=llcCLANG?=clangOPT?=opt
@@ -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.
quoted
quoted
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.
quoted
- $ 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