lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <d225ab70f7c7c07905c72ecad1c0f3b94a7b5a10.camel@esd.eu>
Date: Mon, 12 Aug 2024 09:46:08 +0000
From: Stefan Mätje <Stefan.Maetje@....eu>
To: "stephen@...workplumber.org" <stephen@...workplumber.org>
CC: "dsahern@...il.com" <dsahern@...il.com>, "netdev@...r.kernel.org"
	<netdev@...r.kernel.org>
Subject: Re: [PATCH 0/2] iproute2: ss: clarify build warnings when building
 with libbpf 0.5.0

Am Sonntag, dem 11.08.2024 um 16:25 -0700 schrieb Stephen Hemminger:
> On Mon, 12 Aug 2024 00:31:33 +0200
> Stefan Mätje <stefan.maetje@....eu> wrote:
> 
> > Hi,
> > when building current iproute2 source on Ubuntu 22.04 with libbpf0
> > 0.5.0 installed, I stumbled over the warning "libbpf version 0.5 or 
> > later is required, ...". This prompted me to look closer having the
> > version 0.5.0 installed which should suppress this warning.
> > The warning lured me into the impression that building without
> > warning should be possible using libbpf 0.5.0.
> 
> Why is using new iproute2 on 2 year old distro going to add
> anything here? Especially when BPF has under gone breaking API changes
> over the recent past.

I'm sorry I didn't make my intentions clear. Ubuntu 22.04 is a LTS version
and will therefore not go away soon. And its unfortunate that thay packaged
this old libbpf version.

The aim of my patches was to bring the fact to your attention that the 
source implicitely promises to work with that version (by issueing the 
warning "libbpf version 0.5 or later is required") which is wrong.

I only wanted to save other people's time who also may try to figure out
why the warning is issued even on a 0.5.0 version that fulfills the
announced minimum version requirement.


> > I found out that this warning came from ss.c where a conditional
> > compile path depends on LIBBPF_MAJOR_VERSION and LIBBPF_MINOR_VERSION.
> > Newer libbpf versions define these in libbpf_version.h but the library
> > version 0.5.0 and earlier on Ubuntu and Debian don't package this header.
> > The version 0.7.0 on Debian packages the header libbpf_version.h.
> > 
> > Therefore these defines were undefined during the build and prompted
> > the output of the warning message. I derived these version defines
> > from the library version in the configure script and provided them
> > via CFLAGS. This is the first patch.
> > 
> > Now building ss.c against the libbpf 0.5.0 with ENABLE_BPF_SKSTORAGE_SUPPORT
> > enabled, triggered compilation errors. The function btf_dump__new is
> > used there with a calling convention that was introduced with libbpf
> > version 0.6.0. Therefore ENABLE_BPF_SKSTORAGE_SUPPORT shall only be
> > enabled for libbpf versions >= 0.6.0.
> 
> Might be better just to drop support for old libbpf and also
> the legacy mode. Having multiple versions means there is more code
> that doesn't get covered by tests.

Increasing the minimum required version to 0.7.0 would be fine for me. Then
the configure script patch can be dropped and the second patch only needs
to have the minimum LIBBPF_MINOR_VERSION limit increased to 7.

I provided the configure script patch only for the case that somebody wanted
to configure the build based on the exact version which the API changed 
and I had the patch already in place anyway.

> Also, configure shell script is getting to be so messy, it is time for a redo.
> Maybe give up on make and go to meson?


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ