This patch seems to have caused some regression in packaging the source for some recipes. I don't have a lot of info yet, just finished bisecting.
The issue I see is with "audiofile" recipe from meta-oe that I wanted to debug with master branch: with this patch the -src package is empty. Without it, it is populated fine. I guess there are other recipes also, but that's what I stumbled upon. Will try to look at it, but if you have any ideas, I'm all ears. But in any case, FYI. On 4/21/25 19:29, Khem Raj via lists.openembedded.org wrote: > -ffile-prefix map is more comprehensive when it comes to reproducible > builds and its superset of all prefix-mapping options in compilers > > This makes is cleaner and workable across gcc and clang, clang does not > support -fcanon-prefix-map and it has to be explicitly omitted when using > clang. > > There are lambdas generated in templates by clang which still get the > absolute paths despite -fdebug-prefix-map, this helps with that as well. > > nasm is an outlier and we have fixed it by adding -fdebug-prefix-map option > luckily we do not pass DEBUG_PREFIX_MAP to nasm, in all recipes which use > nasm either pass -fdebug-prefix-map explicitly to nasm or they rewrite it > to use nasm flags syntax. > > We have discussed this in past [1] > > [1] > https://patchwork.yoctoproject.org/project/oe-core/patch/[email protected]/#10281 > > Signed-off-by: Khem Raj <[email protected]> > Cc: Jacob Kroon <[email protected]> > Cc: Martin Jansa <[email protected]> > --- > v2: Drop using --ffile-prefix in go > v3: Fix copydebugsources to use --file-prefix-map instead of > -fdebug-prefix-map > and few more places > > meta/classes-recipe/kernel-arch.bbclass | 6 ++---- > meta/conf/bitbake.conf | 14 +++++--------- > meta/lib/oe/package.py | 2 +- > meta/recipes-devtools/gcc/libgfortran.inc | 2 +- > .../python/python3-maturin_1.8.3.bb | 2 +- > meta/recipes-devtools/rust/cargo_1.85.1.bb | 2 +- > 6 files changed, 11 insertions(+), 17 deletions(-) > > diff --git a/meta/classes-recipe/kernel-arch.bbclass > b/meta/classes-recipe/kernel-arch.bbclass > index 968551267f9..7aea9cd3e8e 100644 > --- a/meta/classes-recipe/kernel-arch.bbclass > +++ b/meta/classes-recipe/kernel-arch.bbclass > @@ -73,10 +73,8 @@ HOST_OBJCOPY_KERNEL_ARCH ?= "${TARGET_OBJCOPY_KERNEL_ARCH}" > > KERNEL_CC = "${CCACHE}${HOST_PREFIX}gcc ${HOST_CC_KERNEL_ARCH} \ > -fuse-ld=bfd ${DEBUG_PREFIX_MAP} \ > - -fdebug-prefix-map=${STAGING_KERNEL_DIR}=${KERNEL_SRC_PATH} \ > - -fmacro-prefix-map=${STAGING_KERNEL_DIR}=${KERNEL_SRC_PATH} \ > - -fdebug-prefix-map=${STAGING_KERNEL_BUILDDIR}=${KERNEL_SRC_PATH} \ > - -fmacro-prefix-map=${STAGING_KERNEL_BUILDDIR}=${KERNEL_SRC_PATH} \ > + -ffile-prefix-map=${STAGING_KERNEL_DIR}=${KERNEL_SRC_PATH} \ > + -ffile-prefix-map=${STAGING_KERNEL_BUILDDIR}=${KERNEL_SRC_PATH} \ > " > KERNEL_LD = "${HOST_PREFIX}ld.bfd ${HOST_LD_KERNEL_ARCH}" > KERNEL_AR = "${HOST_PREFIX}ar ${HOST_AR_KERNEL_ARCH}" > diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf > index 8f90026f7c2..b4e1964f77d 100644 > --- a/meta/conf/bitbake.conf > +++ b/meta/conf/bitbake.conf > @@ -652,15 +652,11 @@ EXTRA_OEMAKE:prepend:task-install = > "${PARALLEL_MAKEINST} " > ################################################################## > TARGET_DBGSRC_DIR ?= "/usr/src/debug/${PN}/${PV}" > # Beware: applied last to first > -DEBUG_PREFIX_MAP ?= "-fcanon-prefix-map \ > - -fmacro-prefix-map=${S}=${TARGET_DBGSRC_DIR} \ > - -fdebug-prefix-map=${S}=${TARGET_DBGSRC_DIR} \ > - -fmacro-prefix-map=${B}=${TARGET_DBGSRC_DIR} \ > - -fdebug-prefix-map=${B}=${TARGET_DBGSRC_DIR} \ > - -fdebug-prefix-map=${STAGING_DIR_HOST}= \ > - -fmacro-prefix-map=${STAGING_DIR_HOST}= \ > - -fdebug-prefix-map=${STAGING_DIR_NATIVE}= \ > - -fmacro-prefix-map=${STAGING_DIR_NATIVE}= \ > +DEBUG_PREFIX_MAP ?= "\ > + -ffile-prefix-map=${S}=${TARGET_DBGSRC_DIR} \ > + -ffile-prefix-map=${B}=${TARGET_DBGSRC_DIR} \ > + -ffile-prefix-map=${STAGING_DIR_HOST}= \ > + -ffile-prefix-map=${STAGING_DIR_NATIVE}= \ > " > DEBUG_LEVELFLAG ?= "-g" > > diff --git a/meta/lib/oe/package.py b/meta/lib/oe/package.py > index 0db14f21642..0bcc04ea54a 100644 > --- a/meta/lib/oe/package.py > +++ b/meta/lib/oe/package.py > @@ -991,7 +991,7 @@ def copydebugsources(debugsrcdir, sources, d): > > prefixmap = {} > for flag in cflags.split(): > - if not flag.startswith("-fdebug-prefix-map"): > + if not flag.startswith("-ffile-prefix-map"): > continue > if "recipe-sysroot" in flag: > continue > diff --git a/meta/recipes-devtools/gcc/libgfortran.inc > b/meta/recipes-devtools/gcc/libgfortran.inc > index 4560421ed1f..fa6aecaaa30 100644 > --- a/meta/recipes-devtools/gcc/libgfortran.inc > +++ b/meta/recipes-devtools/gcc/libgfortran.inc > @@ -8,7 +8,7 @@ EXTRA_OECONF_PATHS = "\ > # An arm hard float target like raspberrypi4 won't build > # as CFLAGS don't make it to the fortran compiler otherwise > # (the configure script sets FC to $GFORTRAN unconditionally) > -export GFORTRAN = "${FC} -fcanon-prefix-map > -fdebug-prefix-map=${S}=${TARGET_DBGSRC_DIR} > -fdebug-prefix-map=${B}=${TARGET_DBGSRC_DIR} -gno-record-gcc-switches" > +export GFORTRAN = "${FC} -ffile-prefix-map=${S}=${TARGET_DBGSRC_DIR} > -ffile-prefix-map=${B}=${TARGET_DBGSRC_DIR} -gno-record-gcc-switches" > > do_configure () { > for target in libbacktrace libgfortran > diff --git a/meta/recipes-devtools/python/python3-maturin_1.8.3.bb > b/meta/recipes-devtools/python/python3-maturin_1.8.3.bb > index 3ec4d0c103b..08975e177f0 100644 > --- a/meta/recipes-devtools/python/python3-maturin_1.8.3.bb > +++ b/meta/recipes-devtools/python/python3-maturin_1.8.3.bb > @@ -10,7 +10,7 @@ SRC_URI[sha256sum] = > "304762f86fd53a8031b1bf006d12572a2aa0a5235485031113195cc015 > > S = "${WORKDIR}/maturin-${PV}" > > -CFLAGS += "-fdebug-prefix-map=${CARGO_HOME}=${TARGET_DBGSRC_DIR}/cargo_home" > +CFLAGS += "-ffile-prefix-map=${CARGO_HOME}=${TARGET_DBGSRC_DIR}/cargo_home" > > DEPENDS += "\ > python3-setuptools-rust-native \ > diff --git a/meta/recipes-devtools/rust/cargo_1.85.1.bb > b/meta/recipes-devtools/rust/cargo_1.85.1.bb > index db18ecfda9a..150c2d2b801 100644 > --- a/meta/recipes-devtools/rust/cargo_1.85.1.bb > +++ b/meta/recipes-devtools/rust/cargo_1.85.1.bb > @@ -19,7 +19,7 @@ CARGO_VENDORING_DIRECTORY = "${RUSTSRC}/vendor" > > inherit cargo pkgconfig > > -DEBUG_PREFIX_MAP += > "-fdebug-prefix-map=${RUSTSRC}/vendor=${TARGET_DBGSRC_DIR}" > +DEBUG_PREFIX_MAP += > "-ffile-prefix-map=${RUSTSRC}/vendor=${TARGET_DBGSRC_DIR}" > > do_cargo_setup_snapshot () { > ${UNPACKDIR}/rust-snapshot-components/${CARGO_SNAPSHOT}/install.sh > --prefix="${WORKDIR}/${CARGO_SNAPSHOT}" --disable-ldconfig > > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#226534): https://lists.openembedded.org/g/openembedded-core/message/226534 Mute This Topic: https://lists.openembedded.org/mt/112379635/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
