bpf.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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 05/14] samples: bpf: makefile: use __LINUX_ARM_ARCH__ selector for arm
Date: Tue, 17 Sep 2019 01:04:12 +0300	[thread overview]
Message-ID: <20190916220411.GC4420@khorivan> (raw)
In-Reply-To: <CAEf4BzYpCGHxNG-jOjwx5a2NXbvLW4gZH8GD2p7E27v9K3ookg@mail.gmail.com>

On Mon, Sep 16, 2019 at 01:44:23PM -0700, Andrii Nakryiko wrote:
>On Mon, Sep 16, 2019 at 3:59 AM Ivan Khoronzhuk
><ivan.khoronzhuk@linaro.org> wrote:
>>
>> For arm, -D__LINUX_ARM_ARCH__=X is min version used as instruction
>> set selector and is absolutely required while parsing some parts of
>> headers. It's present in KBUILD_CFLAGS but not in autoconf.h, so let's
>> retrieve it from and add to programs cflags. In another case errors
>> like "SMP is not supported" for armv7 and bunch of other errors are
>> issued resulting to incorrect final object.
>> ---
>>  samples/bpf/Makefile | 10 ++++++++++
>>  1 file changed, 10 insertions(+)
>>
>> diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile
>> index 8ecc5d0c2d5b..d3c8db3df560 100644
>> --- a/samples/bpf/Makefile
>> +++ b/samples/bpf/Makefile
>> @@ -185,6 +185,16 @@ HOSTLDLIBS_map_perf_test   += -lrt
>>  HOSTLDLIBS_test_overhead       += -lrt
>>  HOSTLDLIBS_xdpsock             += -pthread
>>
>> +ifeq ($(ARCH), arm)
>> +# Strip all except -D__LINUX_ARM_ARCH__ option needed to handle linux
>> +# headers when arm instruction set identification is requested.
>> +ARM_ARCH_SELECTOR = $(shell echo "$(KBUILD_CFLAGS) " | \
>> +                   sed 's/[[:blank:]]/\n/g' | sed '/^-D__LINUX_ARM_ARCH__/!d')
>
>Does the following work exactly like that without shelling out (and
>being arguably simpler)?
>
>ARM_ARCH_SELECTOR = $(filter -D__LINUX_ARM_ARCH__%, $(KBUILD_CFLAGS))
>
>> +
>> +CLANG_EXTRA_CFLAGS := $(ARM_ARCH_SELECTOR)
>> +KBUILD_HOSTCFLAGS := $(ARM_ARCH_SELECTOR)
>
>Isn't this clearing out previous value of KBUILD_HOSTCFLAGS? Is that
>intentional, or it was supposed to be += here?
>
>> +endif
>> +
>>  # Allows pointing LLC/CLANG to a LLVM backend with bpf support, redefine on cmdline:
>>  #  make samples/bpf/ LLC=~/git/llvm/build/bin/llc CLANG=~/git/llvm/build/bin/clang
>>  LLC ?= llc
>> --
>> 2.17.1
>>

Just left from previous version filtering all -D options.
Will update in next v., SELECTOR also.

-- 
Regards,
Ivan Khoronzhuk

  reply	other threads:[~2019-09-16 22:04 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 [this message]
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
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=20190916220411.GC4420@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 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).