python3: re-enable profile guided optimisation

This was accidentally disabled in the 3.7.2 upgrade in 2019[1] where PGO
was made target-only. Change the wrapper script generation so that it
happens in all environments but class-native.

[1] oe-core 02714c105426b0d687620913c1a7401b386428b6

(From OE-Core rev: 96a9964d6071dc614cec06a4f0712e257de2bc8b)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Ross Burton
2023-12-14 17:18:06 +00:00
committed by Richard Purdie
parent 2f56aec05c
commit e73b3744de

View File

@@ -129,18 +129,24 @@ EXTRA_OEMAKE = '\
LIB=${baselib} \
'
do_compile:prepend:class-target() {
# Generate a Profile Guided Optimisation wrapper script that uses qemu-user for
# all cross builds.
write_pgo_wrapper:class-native = ":"
write_pgo_wrapper() {
if ${@bb.utils.contains('PACKAGECONFIG', 'pgo', 'true', 'false', d)}; then
qemu_binary="${@qemu_wrapper_cmdline(d, '${STAGING_DIR_TARGET}', ['${B}', '${STAGING_DIR_TARGET}/${base_libdir}'])}"
cat >pgo-wrapper <<EOF
#!/bin/sh
cd ${B}
$qemu_binary "\$@"
${@qemu_wrapper_cmdline(d, '${STAGING_DIR_TARGET}', ['${B}', '${STAGING_DIR_TARGET}/${base_libdir}'])} "\$@"
EOF
chmod +x pgo-wrapper
fi
}
do_compile:prepend() {
write_pgo_wrapper
}
do_install:prepend() {
${WORKDIR}/check_build_completeness.py ${T}/log.do_compile
}