Re: [PATCH] lto.inc: add DEBUG_PREFIX_MAP back to TARGET_LDFLAGS

Richard Purdie
2026-02-04T22:34:35Z

On Wed, 2026-02-04 at 15:17 -0300, Ricardo de Araujo (Salveti) wrote:
> On Wed, Feb 4, 2026 at 2:26 AM <changqing.li@windriver.com> wrote:
> >
> > From: Changqing Li <changqing.li@windriver.com>
> >
> > DEBUG_PREFIX_MAP is appended to TARGET_LDFLAGS in commit [1] for fixing
> > reproducible issue when LTO is enabled. It is removed in comit [2] since
> > this commit causes cgo binary not reproducible. But actually, we still
> > need this DEBUG_PREFIX_MAP in LDFLAGS when LTO enabled. So, only appened
> > it when LTO is enabled. Refer [3] for the history, with this patch,
> > patch [4] is also needed for cgo + lto enabled.
> >
> > [1] https://git.openembedded.org/openembedded-core/commit/?id=fddaecc88979967d0e00e2fafdbaaabec030da9f
> > [2] https://git.openembedded.org/openembedded-core/commit/?id=1797741aad02b8bf429fac4b81e30cdda64b5448
> > [3] https://lists.openembedded.org/g/openembedded-core/topic/patch_bitbake_conf_remove/117408334
> > [4] https://lists.openembedded.org/g/openembedded-core/message/230059
> >
> > Signed-off-by: Changqing Li <changqing.li@windriver.com>
> > ---
> >  meta/conf/distro/include/lto.inc | 1 +
> >  1 file changed, 1 insertion(+)
> >
> > diff --git a/meta/conf/distro/include/lto.inc b/meta/conf/distro/include/lto.inc
> > index 227f0c5c2a..cef92901e3 100644
> > --- a/meta/conf/distro/include/lto.inc
> > +++ b/meta/conf/distro/include/lto.inc
> > @@ -49,5 +49,6 @@ LTO:toolchain-clang = "${@bb.utils.contains('DISTRO_FEATURES', 'thin-lto', '-flt
> >
> >  SELECTED_OPTIMIZATION:append = "${@bb.utils.contains('DISTRO_FEATURES', 'lto', ' ${LTO}', '', d)}"
> >  TARGET_LDFLAGS:append:class-target = "${@bb.utils.contains('DISTRO_FEATURES', 'lto', ' ${LTO}', '', d)}"
> > +TARGET_LDFLAGS:append:class-target = "${@bb.utils.contains('DISTRO_FEATURES', 'lto', ' ${DEBUG_PREFIX_MAP}', '', d)}"
> >
> >  SELECTED_OPTIMIZATION[vardeps] += "LTO LTOEXTRA"
>
> As raised by Randolph in the previous thread
> (https://lists.openembedded.org/g/openembedded-core/message/230469),
> this will only fix the build for users that are enabling LTO in OE,
> but we still have quite a few recipes enabling LTO as part of the
> project meson/make/etc files (e.g. lxc) even when lto.inc is not used.

See my other reply. According to the bug report links where this was
discussed, upstream think this is a bug in gcc/binutils itself and you
shouldn't have to pass these options to the linker.

I think we do need to narrow down a test case for upstream and see if
this really is a bug or not.

It may be we have to work around this in recipes that are forcing LTO
unconditionally, I'd hope there aren't that many of them? Perhaps just
force the include for those recipes?

Cheers,

Richard