All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnout Vandecappelle <arnout@mind.be>
To: Lang Daniel <d.lang@abatec.at>,
	"buildroot@buildroot.org" <buildroot@buildroot.org>
Cc: Francis Laniel <flaniel@linux.microsoft.com>,
	Romain Naour <romain.naour@gmail.com>
Subject: Re: [Buildroot] [PATCH] package/libbpf: Don't remove bpf.h on host
Date: Tue, 14 Feb 2023 22:16:07 +0100	[thread overview]
Message-ID: <8010c40b-1f2b-1351-c59b-fd96b61e9861@mind.be> (raw)
In-Reply-To: <VI1P190MB0493D7E80E03DC76691F434A9FDD9@VI1P190MB0493.EURP190.PROD.OUTLOOK.COM>



On 13/02/2023 13:24, Lang Daniel wrote:
> Hi Arnout, Francis,
[snip]
>> Therefore, we believe that the solution is to use -isystem instead of -I in the
>> HOSTCC setting of the kernel. This is indeed what is already done for uboot:
>>
>> 	HOSTCC="$(HOSTCC) $(subst -I/,-isystem /,$(subst -I /,-isystem
>> /,$(HOST_CFLAGS)))" \
>>
>> Note that there is a risk that this by itself goes wrong as well. We tried at
>> some point to use -isystem instead of -I in HOST_CFLAGS:
>>
>> commit 6f8162cf8c1abef7e0a4771fe0d6b26a28f5c2b6
>> Author: David Raeman <draeman@bbn.com>
>> Date:   Mon Jul 25 21:52:26 2016
>>
>>       package/Makefile.in should grab HOST_DIR headers using -isystem instead of -I.
>>
>>
>> but this was reverted a copule of days later:
>>
>> commit 255b6f80d395ef048f46cfcf75dba690c56af657
>> Author: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
>> Date:   Sat Jul 30 18:10:18 2016
>>
>>       Revert "package/Makefile.in should grab HOST_DIR headers using -isystem
>> instead of -I."
>>
>> (Unfortunately, the commit has no further explanation of what went wrong).
>>
>>    So, could you (Daniel and Francis) try to apply this patch and replace -I with
>> -isystem like is done for U-Boot, and do a bunch of kernel builds to see if it
>> breaks anything?
> 
> I didn't apply the patch for package/Makefile.in as that would change the behavour
> for all packages.

  Yeah, that's the thing that turned out not to work before.

> I did however copy the logic used in the U-Boot.
> 
> -HOSTCC="$(HOSTCC) $(HOST_CFLAGS) $(HOST_LDFLAGS)" \
> +HOSTCC="$(HOSTCC) $(subst -I/,-isystem /,$(subst -I /,-isystem /,$(HOST_CFLAGS))) $(HOST_LDFLAGS)" \

  That was indeed what I meant.

> 
> And applied this patch to keep bpf.h
> 
> I tested the following config:
> 
> BR2_aarch64=y
> BR2_TOOLCHAIN_EXTERNAL=y
> BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y
> BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y
> BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_AARCH64_GLIBC_STABLE=y
> BR2_LINUX_KERNEL=y
> BR2_LINUX_KERNEL_CUSTOM_VERSION=y
> BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="{VERSION}"
> BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
> BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="pahole-kernel.config"
> BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
> BR2_LINUX_KERNEL_NEEDS_HOST_PAHOLE=y
> 
> and with a fragment for linux:
> 
> CONFIG_BPF_SYSCALL=y
> CONFIG_BPF_UNPRIV_DEFAULT_OFF=n
> CONFIG_DEBUG_INFO_REDUCED=n
> CONFIG_DEBUG_INFO_COMPRESSED=n
> CONFIG_DEBUG_INFO_BTF=y
> CONFIG_SYSTEM_TRUSTED_KEYRING=y
> 
> where VERSION is one of:
> 5.2.21 5.3.18 5.4.231 5.5.19 5.6.19 5.7.19 5.8.18 5.9.16 5.10.167 5.11.22
> 5.12.19 5.13.19 5.14.21 5.15.93 5.16.20 5.17.15 5.18.19 5.19.17 6.0.19 6.1.11
> 
> Version 5.2, as far as I could work it out, is the version that introduced
> the pahole dependency when CONFIG_DEBUG_INFO_BTF is set.
> 
> None-LTS versions after 5.10 and before 6.0 fail with:
> 
>    LD      vmlinux.o
>    MODPOST vmlinux.symvers
>    MODINFO modules.builtin.modinfo
>    GEN     modules.builtin
>    LD      .tmp_vmlinux.btf
>    BTF     .btf.vmlinux.bin.o
>    LD      .tmp_vmlinux.kallsyms1
>    KSYMS   .tmp_vmlinux.kallsyms1.S
>    AS      .tmp_vmlinux.kallsyms1.S
>    LD      .tmp_vmlinux.kallsyms2
>    KSYMS   .tmp_vmlinux.kallsyms2.S
>    AS      .tmp_vmlinux.kallsyms2.S
>    LD      vmlinux
>    BTFIDS  vmlinux
> FAILED: load BTF from vmlinux: Invalid argument
> make[2]: *** [Makefile:1177: vmlinux] Error 255
> make[1]: *** [package/pkg-generic.mk:293: /home/d.lang/ws/other/buildroot/output/build/linux-5.11.22/.stamp_built] Error 2
> make: *** [Makefile:82: _all] Error 2
> 
> But that should be unrelated to the change in package/libbpf and HOSTCC.
> I will try to work out the reason behind that error.

  Since you said "non-LTS versions", I guess it's an upstream issue that got 
fixed in 6.1 and applied to 6.0.x and 5.15.x?


> Should I create a patch to change HOSTCC or is additional testing required?

  Yes please! And include your extensive test coverage in the commit message.

  Regards,
  Arnout

> 
>>
>>    For now, I've marked this patch as Changes Requested (it can only be applied
>> if the bpf.h problem is solved in some other way), and marked Francis's patch
>> [1] as Superseded.
>>
>>    Regards,
>>    Arnout
>>
>>
>> [1]
>> https://patchwork.ozlabs.org/project/buildroot/patch/20220610165441.84812-2-flaniel@linux.microsoft.com/
>>
>>
>>>
>>> Sadly, I tested your patch and I hit the problem described in the comment
>>> regarding redefinition of bpf_core_relo_kind.
>>>
>>> Did you also hit it or you were able to build the kernel with
>>> BR2_LINUX_KERNEL_NEEDS_HOST_PAHOLE?
> 
> It seems like I was tested with a too recent kernel and originally preparing
> this patch and therefore didn't hit this error.
> 
>>>
>>>
>>> Best regards and thank you in advance.
>>>
>>>
>>> _______________________________________________
>>> buildroot mailing list
>>> buildroot@buildroot.org
>>> https://lists.buildroot.org/mailman/listinfo/buildroot
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

      reply	other threads:[~2023-02-14 21:16 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-28 15:06 [Buildroot] [PATCH] package/libbpf: Don't remove bpf.h on host Lang Daniel via buildroot
2023-02-07 20:10 ` Francis Laniel
2023-02-08 15:47   ` Arnout Vandecappelle
2023-02-08 22:22     ` Francis Laniel
2023-02-13 12:24       ` Lang Daniel via buildroot
2023-02-14 21:16         ` Arnout Vandecappelle [this message]

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=8010c40b-1f2b-1351-c59b-fd96b61e9861@mind.be \
    --to=arnout@mind.be \
    --cc=buildroot@buildroot.org \
    --cc=d.lang@abatec.at \
    --cc=flaniel@linux.microsoft.com \
    --cc=romain.naour@gmail.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.