All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jiri Olsa <jolsa@redhat.com>
To: Seth Forshee <seth.forshee@canonical.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: Thu, 17 Sep 2020 11:14:06 +0200	[thread overview]
Message-ID: <20200917091406.GF2411168@krava> (raw)
In-Reply-To: <20200917083809.GE2411168@krava>

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

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

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/
 


  reply	other threads:[~2020-09-17  9:14 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 [this message]
2020-09-17  9:54       ` Jiri Olsa
2020-09-17 12:54       ` Seth Forshee
2020-09-18 10:05         ` Jiri Olsa
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=20200917091406.GF2411168@krava \
    --to=jolsa@redhat.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.