Hello,

thanks, I've reproduced the issue and added additional fix for perf (and
few other recipes), will send updated series after more local testing.

Cheers,

On Tue, Nov 14, 2023 at 3:18 PM Alexandre Belloni <
alexandre.bell...@bootlin.com> wrote:

> Hello Martin,
>
> The perf change uncovers:
>
> https://autobuilder.yoctoproject.org/typhoon/#/builders/42/builds/8098/steps/12/logs/warnings
>
> https://autobuilder.yoctoproject.org/typhoon/#/builders/59/builds/8056/steps/12/logs/warnings
>
> And many more
>
> On 13/11/2023 08:25:24+0100, Martin Jansa wrote:
> > * ${EXTENDPE} and ${PR} was already dropped from ${WORKDIR} in:
> >   https://lists.openembedded.org/g/openembedded-core/message/185818
> >   adjust -fmacro-prefix-map and -fdebug-prefix-map similarly.
> >   As we don't depend on PR in WORKDIR maybe we don't need it in
> >   /usr/src/debug paths as well anymore.
> >
> > * The interesting side-effect of this is that for DISTROs which still
> >   use PR (e.g. webOS OSE), the difference in -fdebug-prefix-map causes
> >   all binaries to be slightly different when rebuilt with different PR
> >   (due to this path, even when otherwise they are binary reproducible)
> >   and when the number of digits in PR changes (e.g. from r9 to r10) it
> >   also results in slightly bigger binaries (and more unnecessary changes
> >   in buildhistory diffs).
> >
> >   For example this foo binary, the difference between "new" and "old" is
> >   extra patch applied in SRC_URI (which doesn't affect the foo binary,
> >   but was the reason for PR bump).
> >
> >   And the binary is bigger with r10, identical with r6 and slightly
> >   different due to debug-prefix-map between r6 and r7:
> >
> >   $ ls -la 1.0.0-175-*/image/usr/sbin/foo
> >   -rwxr-xr-x 1 bitbake bitbake 30182460 Nov  8 08:29
> 1.0.0-175-new-r10/image/usr/sbin/foo
> >   -rwxr-xr-x 1 bitbake bitbake 30182224 Nov  8 08:02
> 1.0.0-175-new-r6/image/usr/sbin/foo
> >   -rwxr-xr-x 1 bitbake bitbake 30182224 Nov  8 07:49
> 1.0.0-175-new-r7/image/usr/sbin/foo
> >   -rwxr-xr-x 1 bitbake bitbake 30182224 Nov  8 07:39
> 1.0.0-175-old-r6/image/usr/sbin/foo
> >
> >   $ md5sum 1.0.0-175-*/image/usr/sbin/foo
> >   8e3ab67d596f8cc2f9c6320dab10af01  1.0.0-175-new-r10/image/usr/sbin/foo
> >   f6ff1e64fe6affb9ba0d8f278cf7ed79  1.0.0-175-new-r6/image/usr/sbin/foo
> >   6469a0b10aac233911e63c5ea97b03c0  1.0.0-175-new-r7/image/usr/sbin/foo
> >   f6ff1e64fe6affb9ba0d8f278cf7ed79  1.0.0-175-old-r6/image/usr/sbin/foo
> >
> > Signed-off-by: Martin Jansa <martin.ja...@gmail.com>
> > ---
> > v2: shorten to summary to fix:
> > FAIL: test shortlog length: Edit shortlog so that it is 90 characters or
> less (currently 140 characters) (test_mbox.TestMbox.test_shortlog_length)
> >
> >  meta/conf/bitbake.conf                            | 8 ++++----
> >  meta/recipes-core/ovmf/ovmf_git.bb                | 2 +-
> >  meta/recipes-devtools/go/go-cross-canadian.inc    | 2 +-
> >  meta/recipes-devtools/rust/cargo_1.70.0.bb        | 2 +-
> >  meta/recipes-extended/acpica/acpica_20230628.bb   | 2 +-
> >  meta/recipes-graphics/jpeg/libjpeg-turbo_3.0.1.bb | 2 +-
> >  meta/recipes-kernel/perf/perf.bb                  | 2 +-
> >  meta/recipes-multimedia/ffmpeg/ffmpeg_6.0.bb      | 2 +-
> >  8 files changed, 11 insertions(+), 11 deletions(-)
> >
> > diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
> > index 67ff769046..3836a389b8 100644
> > --- a/meta/conf/bitbake.conf
> > +++ b/meta/conf/bitbake.conf
> > @@ -648,10 +648,10 @@ EXTRA_OEMAKE:prepend:task-install =
> "${PARALLEL_MAKEINST} "
> >  ##################################################################
> >  # Beware: applied last to first
> >  DEBUG_PREFIX_MAP ?= "-fcanon-prefix-map \
> > - -fmacro-prefix-map=${S}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR} \
> > - -fdebug-prefix-map=${S}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR} \
> > - -fmacro-prefix-map=${B}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR} \
> > - -fdebug-prefix-map=${B}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR} \
> > + -fmacro-prefix-map=${S}=/usr/src/debug/${PN}/${PV} \
> > + -fdebug-prefix-map=${S}=/usr/src/debug/${PN}/${PV} \
> > + -fmacro-prefix-map=${B}=/usr/src/debug/${PN}/${PV} \
> > + -fdebug-prefix-map=${B}=/usr/src/debug/${PN}/${PV} \
> >   -fdebug-prefix-map=${STAGING_DIR_HOST}= \
> >   -fmacro-prefix-map=${STAGING_DIR_HOST}= \
> >   -fdebug-prefix-map=${STAGING_DIR_NATIVE}= \
> > diff --git a/meta/recipes-core/ovmf/ovmf_git.bb
> b/meta/recipes-core/ovmf/ovmf_git.bb
> > index 6bbe21ac5c..bf67a2a4a8 100644
> > --- a/meta/recipes-core/ovmf/ovmf_git.bb
> > +++ b/meta/recipes-core/ovmf/ovmf_git.bb
> > @@ -122,7 +122,7 @@ fix_toolchain:append:class-native() {
> >  # --debug-prefix-map to nasm (we carry a patch to nasm for this). The
> >  # tools definitions are built by ovmf-native so we need to pass this in
> >  # at target build time when we know the right values.
> > -export NASM_PREFIX_MAP =
> "--debug-prefix-map=${WORKDIR}=/usr/src/debug/ovmf/${EXTENDPE}${PV}-${PR}"
> > +export NASM_PREFIX_MAP =
> "--debug-prefix-map=${WORKDIR}=/usr/src/debug/ovmf/${PV}"
> >  export GCC_PREFIX_MAP = "${DEBUG_PREFIX_MAP} -Wno-stringop-overflow
> -Wno-maybe-uninitialized"
> >
> >  GCC_VER="$(${CC} -v 2>&1 | tail -n1 | awk '{print $3}')"
> > diff --git a/meta/recipes-devtools/go/go-cross-canadian.inc
> b/meta/recipes-devtools/go/go-cross-canadian.inc
> > index 45758f3361..0a72e89bbd 100644
> > --- a/meta/recipes-devtools/go/go-cross-canadian.inc
> > +++ b/meta/recipes-devtools/go/go-cross-canadian.inc
> > @@ -8,7 +8,7 @@ PN = "go-cross-canadian-${TRANSLATED_TARGET_ARCH}"
> >  # it uses gcc on build machine during go-cross-canadian bootstrap, but
> >  # the gcc version may be old and not support option '-fmacro-prefix-map'
> >  # which is one of default values of DEBUG_PREFIX_MAP
> > -DEBUG_PREFIX_MAP =
> "-fdebug-prefix-map=${WORKDIR}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR} \
> > +DEBUG_PREFIX_MAP =
> "-fdebug-prefix-map=${WORKDIR}=/usr/src/debug/${PN}/${PV} \
> >                      -fdebug-prefix-map=${STAGING_DIR_HOST}= \
> >                      -fdebug-prefix-map=${STAGING_DIR_NATIVE}= \
> >                      "
> > diff --git a/meta/recipes-devtools/rust/cargo_1.70.0.bb
> b/meta/recipes-devtools/rust/cargo_1.70.0.bb
> > index a5c1064106..9a23ba9d5f 100644
> > --- a/meta/recipes-devtools/rust/cargo_1.70.0.bb
> > +++ b/meta/recipes-devtools/rust/cargo_1.70.0.bb
> > @@ -19,7 +19,7 @@ CARGO_VENDORING_DIRECTORY = "${RUSTSRC}/vendor"
> >
> >  inherit cargo pkgconfig
> >
> > -DEBUG_PREFIX_MAP +=
> "-fdebug-prefix-map=${RUSTSRC}/vendor=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}"
> > +DEBUG_PREFIX_MAP +=
> "-fdebug-prefix-map=${RUSTSRC}/vendor=/usr/src/debug/${PN}/${PV}"
> >
> >  do_cargo_setup_snapshot () {
> >       ${WORKDIR}/rust-snapshot-components/${CARGO_SNAPSHOT}/install.sh
> --prefix="${WORKDIR}/${CARGO_SNAPSHOT}" --disable-ldconfig
> > diff --git a/meta/recipes-extended/acpica/acpica_20230628.bb
> b/meta/recipes-extended/acpica/acpica_20230628.bb
> > index b7921516a2..8ca1f0892f 100644
> > --- a/meta/recipes-extended/acpica/acpica_20230628.bb
> > +++ b/meta/recipes-extended/acpica/acpica_20230628.bb
> > @@ -36,7 +36,7 @@ EXTRA_OEMAKE = "CC='${CC}' \
> >                  INSTALLDIR=${bindir} \
> >                  INSTALLFLAGS= \
> >                  YACC=bison \
> > -                YFLAGS='-y
> --file-prefix-map=${WORKDIR}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}' \
> > +                YFLAGS='-y
> --file-prefix-map=${WORKDIR}=/usr/src/debug/${PN}/${PV}' \
> >                  "
> >
> >  do_install() {
> > diff --git a/meta/recipes-graphics/jpeg/libjpeg-turbo_3.0.1.bb
> b/meta/recipes-graphics/jpeg/libjpeg-turbo_3.0.1.bb
> > index 99ed82dac4..ca1910966e 100644
> > --- a/meta/recipes-graphics/jpeg/libjpeg-turbo_3.0.1.bb
> > +++ b/meta/recipes-graphics/jpeg/libjpeg-turbo_3.0.1.bb
> > @@ -24,7 +24,7 @@ RCONFLICTS:${PN} += "jpeg"
> >
> >  inherit cmake pkgconfig
> >
> > -export NASMENV = "--reproducible
> --debug-prefix-map=${WORKDIR}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}"
> > +export NASMENV = "--reproducible
> --debug-prefix-map=${WORKDIR}=/usr/src/debug/${PN}/${PV}"
> >
> >  # Add nasm-native dependency consistently for all build arches is hard
> >  EXTRA_OECMAKE:append:class-native = " -DWITH_SIMD=False"
> > diff --git a/meta/recipes-kernel/perf/perf.bb
> b/meta/recipes-kernel/perf/perf.bb
> > index a90acd55ef..dee8b50b31 100644
> > --- a/meta/recipes-kernel/perf/perf.bb
> > +++ b/meta/recipes-kernel/perf/perf.bb
> > @@ -98,7 +98,7 @@ EXTRA_OEMAKE = '\
> >      AR="${AR}" \
> >      LD="${LD}" \
> >      EXTRA_CFLAGS="-ldw -I${S}" \
> > -    YFLAGS='-y
> --file-prefix-map=${WORKDIR}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}' \
> > +    YFLAGS='-y --file-prefix-map=${WORKDIR}=/usr/src/debug/${PN}/${PV}'
> \
> >      EXTRA_LDFLAGS="${PERF_EXTRA_LDFLAGS}" \
> >      perfexecdir=${libexecdir} \
> >      NO_GTK2=1 \
> > diff --git a/meta/recipes-multimedia/ffmpeg/ffmpeg_6.0.bb
> b/meta/recipes-multimedia/ffmpeg/ffmpeg_6.0.bb
> > index e65f80d64b..0ad2f80217 100644
> > --- a/meta/recipes-multimedia/ffmpeg/ffmpeg_6.0.bb
> > +++ b/meta/recipes-multimedia/ffmpeg/ffmpeg_6.0.bb
> > @@ -151,7 +151,7 @@ do_configure() {
> >      export TMPDIR="${B}/tmp"
> >      mkdir -p ${B}/tmp
> >      ${S}/configure ${EXTRA_OECONF}
> > -    sed -i -e "s,^X86ASMFLAGS=.*,&
> --debug-prefix-map=${S}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}
> --debug-prefix-map=${B}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR},g"
> ${B}/ffbuild/config.mak
> > +    sed -i -e "s,^X86ASMFLAGS=.*,&
> --debug-prefix-map=${S}=/usr/src/debug/${PN}/${PV}
> --debug-prefix-map=${B}=/usr/src/debug/${PN}/${PV},g"
> ${B}/ffbuild/config.mak
> >  }
> >
> >  # patch out build host paths for reproducibility
> > --
> > 2.42.1
> >
>
> >
> > 
> >
>
>
> --
> Alexandre Belloni, co-owner and COO, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#190580): 
https://lists.openembedded.org/g/openembedded-core/message/190580
Mute This Topic: https://lists.openembedded.org/mt/102557173/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to