From: Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org>
To: Andrii Nakryiko <andrii.nakryiko@gmail.com>
Cc: Alexei Starovoitov <ast@kernel.org>,
Daniel Borkmann <daniel@iogearbox.net>,
Yonghong Song <yhs@fb.com>,
"David S. Miller" <davem@davemloft.net>,
Jakub Kicinski <jakub.kicinski@netronome.com>,
Jesper Dangaard Brouer <hawk@kernel.org>,
john fastabend <john.fastabend@gmail.com>,
open list <linux-kernel@vger.kernel.org>,
Networking <netdev@vger.kernel.org>, bpf <bpf@vger.kernel.org>,
clang-built-linux@googlegroups.com,
sergei.shtylyov@cogentembedded.com
Subject: Re: [PATCH v3 bpf-next 11/14] libbpf: makefile: add C/CXX/LDFLAGS to libbpf.so and test_libpf targets
Date: Wed, 18 Sep 2019 14:05:18 +0300 [thread overview]
Message-ID: <20190918110517.GD2908@khorivan> (raw)
In-Reply-To: <CAEf4BzZXNN_dhs=jUjtfCqtuV1bk9H=q5b07kVDQQsysjhF4cQ@mail.gmail.com>
On Tue, Sep 17, 2019 at 10:19:22PM -0700, Andrii Nakryiko wrote:
>On Mon, Sep 16, 2019 at 4:00 AM Ivan Khoronzhuk
><ivan.khoronzhuk@linaro.org> wrote:
>>
>> In case of LDFLAGS and EXTRA_CC/CXX flags there is no way to pass them
>> correctly to build command, for instance when --sysroot is used or
>> external libraries are used, like -lelf, wich can be absent in
>> toolchain. This can be used for samples/bpf cross-compiling allowing
>> to get elf lib from sysroot.
>>
>> Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org>
>> ---
>> tools/lib/bpf/Makefile | 11 ++++++++---
>> 1 file changed, 8 insertions(+), 3 deletions(-)
>>
>> diff --git a/tools/lib/bpf/Makefile b/tools/lib/bpf/Makefile
>> index c6f94cffe06e..bccfa556ef4e 100644
>> --- a/tools/lib/bpf/Makefile
>> +++ b/tools/lib/bpf/Makefile
>> @@ -94,6 +94,10 @@ else
>> CFLAGS := -g -Wall
>> endif
>>
>> +ifdef EXTRA_CXXFLAGS
>> + CXXFLAGS := $(EXTRA_CXXFLAGS)
>> +endif
>> +
>> ifeq ($(feature-libelf-mmap), 1)
>> override CFLAGS += -DHAVE_LIBELF_MMAP_SUPPORT
>> endif
>> @@ -176,8 +180,9 @@ $(BPF_IN): force elfdep bpfdep
>> $(OUTPUT)libbpf.so: $(OUTPUT)libbpf.so.$(LIBBPF_VERSION)
>>
>> $(OUTPUT)libbpf.so.$(LIBBPF_VERSION): $(BPF_IN)
>> - $(QUIET_LINK)$(CC) --shared -Wl,-soname,libbpf.so.$(LIBBPF_MAJOR_VERSION) \
>> - -Wl,--version-script=$(VERSION_SCRIPT) $^ -lelf -o $@
>> + $(QUIET_LINK)$(CC) $(LDFLAGS) \
>> + --shared -Wl,-soname,libbpf.so.$(LIBBPF_MAJOR_VERSION) \
>> + -Wl,--version-script=$(VERSION_SCRIPT) $^ -lelf -o $@
>> @ln -sf $(@F) $(OUTPUT)libbpf.so
>> @ln -sf $(@F) $(OUTPUT)libbpf.so.$(LIBBPF_MAJOR_VERSION)
>>
>> @@ -185,7 +190,7 @@ $(OUTPUT)libbpf.a: $(BPF_IN)
>> $(QUIET_LINK)$(RM) $@; $(AR) rcs $@ $^
>>
>> $(OUTPUT)test_libbpf: test_libbpf.cpp $(OUTPUT)libbpf.a
>> - $(QUIET_LINK)$(CXX) $(INCLUDES) $^ -lelf -o $@
>> + $(QUIET_LINK)$(CXX) $(CXXFLAGS) $(LDFLAGS) $(INCLUDES) $^ -lelf -o $@
>
>Instead of doing ifdef EXTRA_CXXFLAGS bit above, you can just include
>both $(CXXFLAGS) and $(EXTRA_CXXFLAGS), which will do the right thing
>(and is actually recommended my make documentation way to do this).
It's good practice to follow existent style, I've done similar way as for
CFLAGS + EXTRACFLAGS here, didn't want to verify it can impact on
smth else. And my goal is not to correct everything but embed my
functionality, series tool large w/o it.
>
>But actually, there is no need to use C++ compiler here,
>test_libbpf.cpp can just be plain C. Do you mind renaming it to .c and
>using C compiler instead?
Seems like, will try in next v.
>
>>
>> $(OUTPUT)libbpf.pc:
>> $(QUIET_GEN)sed -e "s|@PREFIX@|$(prefix)|" \
>> --
>> 2.17.1
>>
--
Regards,
Ivan Khoronzhuk
next prev parent reply other threads:[~2019-09-18 11:05 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-09-16 10:54 [PATCH v3 bpf-next 00/14] samples: bpf: improve/fix cross-compilation Ivan Khoronzhuk
2019-09-16 10:54 ` [PATCH v3 bpf-next 01/14] samples: bpf: makefile: fix HDR_PROBE "echo" Ivan Khoronzhuk
2019-09-16 20:13 ` Andrii Nakryiko
2019-09-16 21:22 ` Ivan Khoronzhuk
2019-09-16 21:35 ` Andreas Schwab
2019-09-16 22:01 ` Andrii Nakryiko
2019-09-16 10:54 ` [PATCH v3 bpf-next 02/14] samples: bpf: makefile: fix cookie_uid_helper_example obj build Ivan Khoronzhuk
2019-09-16 20:18 ` Andrii Nakryiko
2019-09-16 10:54 ` [PATCH v3 bpf-next 03/14] samples: bpf: makefile: use --target from cross-compile Ivan Khoronzhuk
2019-09-16 20:25 ` Andrii Nakryiko
2019-09-16 10:54 ` [PATCH v3 bpf-next 04/14] samples: bpf: use own EXTRA_CFLAGS for clang commands Ivan Khoronzhuk
2019-09-16 20:35 ` Andrii Nakryiko
2019-09-16 22:01 ` Ivan Khoronzhuk
2019-09-16 10:54 ` [PATCH v3 bpf-next 05/14] samples: bpf: makefile: use __LINUX_ARM_ARCH__ selector for arm Ivan Khoronzhuk
2019-09-16 20:44 ` Andrii Nakryiko
2019-09-16 22:04 ` Ivan Khoronzhuk
2019-09-16 10:54 ` [PATCH v3 bpf-next 06/14] samples: bpf: makefile: drop unnecessarily inclusion for bpf_load Ivan Khoronzhuk
2019-09-16 20:52 ` Andrii Nakryiko
2019-09-16 10:54 ` [PATCH v3 bpf-next 07/14] samples: bpf: add makefile.target for separate CC target build Ivan Khoronzhuk
2019-09-17 23:19 ` Andrii Nakryiko
2019-09-18 10:12 ` Ivan Khoronzhuk
2019-09-18 21:22 ` Andrii Nakryiko
2019-09-16 10:54 ` [PATCH v3 bpf-next 08/14] samples: bpf: makefile: base target programs rules on Makefile.target Ivan Khoronzhuk
2019-09-17 23:28 ` Andrii Nakryiko
2019-09-18 10:23 ` Ivan Khoronzhuk
2019-09-16 10:54 ` [PATCH v3 bpf-next 09/14] samples: bpf: makefile: use own flags but not host when cross compile Ivan Khoronzhuk
2019-09-17 10:14 ` Sergei Shtylyov
2019-09-17 23:42 ` Andrii Nakryiko
2019-09-18 10:35 ` Ivan Khoronzhuk
2019-09-18 21:29 ` Andrii Nakryiko
2019-09-19 14:18 ` Ivan Khoronzhuk
2019-09-19 17:54 ` Andrii Nakryiko
2019-09-16 10:54 ` [PATCH v3 bpf-next 10/14] samples: bpf: makefile: use target CC environment for HDR_PROBE Ivan Khoronzhuk
2019-09-18 4:20 ` Andrii Nakryiko
2019-09-16 10:54 ` [PATCH v3 bpf-next 11/14] libbpf: makefile: add C/CXX/LDFLAGS to libbpf.so and test_libpf targets Ivan Khoronzhuk
2019-09-18 5:19 ` Andrii Nakryiko
2019-09-18 11:05 ` Ivan Khoronzhuk [this message]
2019-09-18 21:42 ` Andrii Nakryiko
2019-09-16 10:54 ` [PATCH v3 bpf-next 12/14] samples: bpf: makefile: provide C/CXX/LD flags to libbpf Ivan Khoronzhuk
2019-09-18 5:20 ` Andrii Nakryiko
2019-09-16 10:54 ` [PATCH v3 bpf-next 13/14] samples: bpf: makefile: add sysroot support Ivan Khoronzhuk
2019-09-18 5:23 ` Andrii Nakryiko
2019-09-18 11:09 ` Ivan Khoronzhuk
2019-09-16 10:54 ` [PATCH v3 bpf-next 14/14] samples: bpf: README: add preparation steps and sysroot info Ivan Khoronzhuk
2019-09-18 5:33 ` [PATCH v3 bpf-next 00/14] samples: bpf: improve/fix cross-compilation Andrii Nakryiko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190918110517.GD2908@khorivan \
--to=ivan.khoronzhuk@linaro.org \
--cc=andrii.nakryiko@gmail.com \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=clang-built-linux@googlegroups.com \
--cc=daniel@iogearbox.net \
--cc=davem@davemloft.net \
--cc=hawk@kernel.org \
--cc=jakub.kicinski@netronome.com \
--cc=john.fastabend@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=sergei.shtylyov@cogentembedded.com \
--cc=yhs@fb.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.