From: Jiri Olsa <jolsa@redhat.com>
To: Seth Forshee <seth.forshee@canonical.com>,
Andrii Nakryiko <andriin@fb.com>
Cc: Jiri Olsa <jolsa@kernel.org>, Alexei Starovoitov <ast@kernel.org>,
Daniel Borkmann <daniel@iogearbox.net>,
netdev@vger.kernel.org, bpf@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: resolve_btfids breaks kernel cross-compilation
Date: Fri, 18 Sep 2020 12:05:42 +0200 [thread overview]
Message-ID: <20200918100542.GD2514666@krava> (raw)
In-Reply-To: <20200917125450.GC4820@ubuntu-x1>
On Thu, Sep 17, 2020 at 07:54:50AM -0500, Seth Forshee wrote:
> On Thu, Sep 17, 2020 at 11:14:06AM +0200, Jiri Olsa wrote:
> > On Thu, Sep 17, 2020 at 10:38:12AM +0200, Jiri Olsa wrote:
> > > On Thu, Sep 17, 2020 at 10:04:55AM +0200, Jiri Olsa wrote:
> > > > On Wed, Sep 16, 2020 at 02:47:33PM -0500, Seth Forshee wrote:
> > > > > The requirement to build resolve_btfids whenever CONFIG_DEBUG_INFO_BTF
> > > > > is enabled breaks some cross builds. For example, when building a 64-bit
> > > > > powerpc kernel on amd64 I get:
> > > > >
> > > > > Auto-detecting system features:
> > > > > ... libelf: [ [32mon[m ]
> > > > > ... zlib: [ [32mon[m ]
> > > > > ... bpf: [ [31mOFF[m ]
> > > > >
> > > > > BPF API too old
> > > > > make[6]: *** [Makefile:295: bpfdep] Error 1
> > > > >
> > > > > The contents of tools/bpf/resolve_btfids/feature/test-bpf.make.output:
> > > > >
> > > > > In file included from /home/sforshee/src/u-k/unstable/tools/arch/powerpc/include/uapi/asm/bitsperlong.h:11,
> > > > > from /usr/include/asm-generic/int-ll64.h:12,
> > > > > from /usr/include/asm-generic/types.h:7,
> > > > > from /usr/include/x86_64-linux-gnu/asm/types.h:1,
> > > > > from /home/sforshee/src/u-k/unstable/tools/include/linux/types.h:10,
> > > > > from /home/sforshee/src/u-k/unstable/tools/include/uapi/linux/bpf.h:11,
> > > > > from test-bpf.c:3:
> > > > > /home/sforshee/src/u-k/unstable/tools/include/asm-generic/bitsperlong.h:14:2: error: #error Inconsistent word size. Check asm/bitsperlong.h
> > > > > 14 | #error Inconsistent word size. Check asm/bitsperlong.h
> > > > > | ^~~~~
> > > > >
> > > > > This is because tools/arch/powerpc/include/uapi/asm/bitsperlong.h sets
> > > > > __BITS_PER_LONG based on the predefinied compiler macro __powerpc64__,
> > > > > which is not defined by the host compiler. What can we do to get cross
> > > > > builds working again?
> > > >
> > > > could you please share the command line and setup?
> > >
> > > I just reproduced.. checking on fix
> >
> > I still need to check on few things, but patch below should help
>
> It does help with the word size problem, thanks.
>
> > we might have a problem for cross builds with different endianity
> > than the host because libbpf does not support reading BTF data
> > with different endianity, and we get:
> >
> > BTFIDS vmlinux
> > libbpf: non-native ELF endianness is not supported
>
> Yes, I see this now when cross building for s390.
Andrii,
I read you might be already working on this?
https://lore.kernel.org/bpf/CAEf4Bza9tZ-Jj0dj9Ne0fmxa95t=9XxxJR+Ce=6hDmw_d8uVFA@mail.gmail.com/
thanks,
jirka
>
> Thanks,
> Seth
>
> >
> > jirka
> >
> >
> > ---
> > diff --git a/tools/bpf/resolve_btfids/Makefile b/tools/bpf/resolve_btfids/Makefile
> > index a88cd4426398..d3c818b8d8d3 100644
> > --- a/tools/bpf/resolve_btfids/Makefile
> > +++ b/tools/bpf/resolve_btfids/Makefile
> > @@ -1,5 +1,6 @@
> > # SPDX-License-Identifier: GPL-2.0-only
> > include ../../scripts/Makefile.include
> > +include ../../scripts/Makefile.arch
> >
> > ifeq ($(srctree),)
> > srctree := $(patsubst %/,%,$(dir $(CURDIR)))
> > @@ -29,6 +30,7 @@ endif
> > AR = $(HOSTAR)
> > CC = $(HOSTCC)
> > LD = $(HOSTLD)
> > +ARCH = $(HOSTARCH)
> >
> > OUTPUT ?= $(srctree)/tools/bpf/resolve_btfids/
> >
> >
>
next prev parent reply other threads:[~2020-09-18 10:05 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-16 19:47 resolve_btfids breaks kernel cross-compilation Seth Forshee
2020-09-17 8:04 ` Jiri Olsa
2020-09-17 8:38 ` Jiri Olsa
2020-09-17 9:14 ` Jiri Olsa
2020-09-17 9:54 ` Jiri Olsa
2020-09-17 12:54 ` Seth Forshee
2020-09-18 10:05 ` Jiri Olsa [this message]
2020-09-18 18:50 ` 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=20200918100542.GD2514666@krava \
--to=jolsa@redhat.com \
--cc=andriin@fb.com \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=jolsa@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=seth.forshee@canonical.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.