On Mon, May 8, 2023 at 1:05 PM Max Krummenacher <[email protected]> wrote:
>
> From: Max Krummenacher <[email protected]>
>
> With kernel 6.4-rc1 commit 6898e60f709b ("perf build: If libtraceevent
> isn't present error the build") having libtraceevent is a required
> dependency unless building it with 'NO_LIBTRACEEVENT=1'. Older kernels
> did print a warning and build perf with reduced functionality.
>

We might also consider bringing libtraceevent into core, since there
is an in-kernel provider.
Since perf is now erroring when it isn't present, they clearly
consider it fairly core
functionality (even if it can be disabled).

> Add a libtraceevent packageconfig which if not present builds with
> NO_LIBTRACEEVENT=1 and if present depends on the meta-openembedded
> provided libtraceevent.
> Fixup the to be called pkg-config as $(CROSS_COMPILE)pkg-config doesn't
> exist.
>

The pkg-config changes need to be a separate commit.

It is interesting that these are needed, as we have been using
packageconfig variables
with core for quite some time now.

But looking more closely, it does appear that we are mainly just
setting the NO_*
flags, and not using pkg-config to locate libs and flags. and libraceevent is
exposing the issue. If that is true, it is worth logging that in the
commit log, so
we can understand why it is only needed now.

I had to convince myself that we aren't tangling up the host versus native
pkg-config in perf (since it already acknowledges the difference with the
CROSS_COMPILE prefix to pkg-config) .. and I did confirm that we want the
target pkg-config settings for this, which pkg-config will be picking up.

(for the main kernel builds, we override pkg-config to point to host settings,
but that isn't the use in perf at the moment).

Bruce

> Signed-off-by: Max Krummenacher <[email protected]>
> ---
>  meta/recipes-kernel/perf/perf.bb | 3 +++
>  1 file changed, 3 insertions(+)
>
> diff --git a/meta/recipes-kernel/perf/perf.bb 
> b/meta/recipes-kernel/perf/perf.bb
> index 2f28d16fba..110711f4ac 100644
> --- a/meta/recipes-kernel/perf/perf.bb
> +++ b/meta/recipes-kernel/perf/perf.bb
> @@ -27,6 +27,7 @@ PACKAGECONFIG[jvmti] = ",NO_JVMTI=1"
>  PACKAGECONFIG[audit] = ",NO_LIBAUDIT=1,audit"
>  PACKAGECONFIG[manpages] = ",,xmlto-native asciidoc-native"
>  PACKAGECONFIG[cap] = ",,libcap"
> +PACKAGECONFIG[libtraceevent] = ",NO_LIBTRACEEVENT=1,libtraceevent"
>  # Arm CoreSight
>  PACKAGECONFIG[coresight] = "CORESIGHT=1,,opencsd"
>
> @@ -87,6 +88,7 @@ EXTRA_OEMAKE = '\
>      perfexecdir=${libexecdir} \
>      NO_GTK2=1 \
>      ${PACKAGECONFIG_CONFARGS} \
> +    PKG_CONFIG=pkg-config \
>      TMPDIR="${B}" \
>      LIBUNWIND_DIR=${STAGING_EXECPREFIXDIR} \
>  '
> @@ -287,6 +289,7 @@ do_configure:prepend () {
>          sed -i 's,CC = $(CROSS_COMPILE)gcc,#CC,' 
> ${S}/tools/perf/Makefile.perf
>          sed -i 's,AR = $(CROSS_COMPILE)ar,#AR,' ${S}/tools/perf/Makefile.perf
>          sed -i 's,LD = $(CROSS_COMPILE)ld,#LD,' ${S}/tools/perf/Makefile.perf
> +        sed -i 's,PKG_CONFIG = $(CROSS_COMPILE)pkg-config,#PKG_CONFIG,' 
> ${S}/tools/perf/Makefile.perf
>      fi
>      if [ -e "${S}/tools/lib/api/Makefile" ]; then
>          sed -i 's,CC = $(CROSS_COMPILE)gcc,#CC,' ${S}/tools/lib/api/Makefile
> --
> 2.35.3
>
>
> 
>


--
- Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end
- "Use the force Harry" - Gandalf, Star Trek II
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#181027): 
https://lists.openembedded.org/g/openembedded-core/message/181027
Mute This Topic: https://lists.openembedded.org/mt/98765780/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to