Message ID | 20230428032030.2047920-1-raj.khem@gmail.com |
---|---|
State | Accepted, archived |
Commit | abe97fa74b10c2c71d79bc3573d4edb509b111f5 |
Headers | show |
Series | bitbake.conf: Add -fcanon-prefix-map to DEBUG_PREFIX_MAP | expand |
Do you already have a follow-up change for meta-clang which seems to be broken by this change? clang-16: error: unknown argument: '-fcanon-prefix-map' On Fri, Apr 28, 2023 at 5:20 AM Khem Raj <raj.khem@gmail.com> wrote: > This should help canonicalize the relative paths and symlinks > during cross compile, -fcanon-prefix-map is newly added in gcc-13+ [1] > > [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108464#c8 > Signed-off-by: Khem Raj <raj.khem@gmail.com> > --- > meta/conf/bitbake.conf | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf > index d94ffe1df9..453bef37a9 100644 > --- a/meta/conf/bitbake.conf > +++ b/meta/conf/bitbake.conf > @@ -644,7 +644,8 @@ EXTRA_OEMAKE:prepend:task-install = > "${PARALLEL_MAKEINST} " > # Optimization flags. > ################################################################## > # Beware: applied last to first > -DEBUG_PREFIX_MAP ?= > "-fmacro-prefix-map=${S}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR} \ > +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} \ > -- > 2.40.1 > > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#180504): > https://lists.openembedded.org/g/openembedded-core/message/180504 > Mute This Topic: https://lists.openembedded.org/mt/98551742/3617156 > Group Owner: openembedded-core+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [ > Martin.Jansa@gmail.com] > -=-=-=-=-=-=-=-=-=-=-=- > >
On Fri, Apr 28, 2023 at 4:18 AM Martin Jansa <Martin.Jansa@gmail.com> wrote: > > Do you already have a follow-up change for meta-clang which seems to be broken by this change? > > clang-16: error: unknown argument: '-fcanon-prefix-map' > yes https://github.com/kraj/meta-clang/pull/782 > On Fri, Apr 28, 2023 at 5:20 AM Khem Raj <raj.khem@gmail.com> wrote: >> >> This should help canonicalize the relative paths and symlinks >> during cross compile, -fcanon-prefix-map is newly added in gcc-13+ [1] >> >> [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108464#c8 >> Signed-off-by: Khem Raj <raj.khem@gmail.com> >> --- >> meta/conf/bitbake.conf | 3 ++- >> 1 file changed, 2 insertions(+), 1 deletion(-) >> >> diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf >> index d94ffe1df9..453bef37a9 100644 >> --- a/meta/conf/bitbake.conf >> +++ b/meta/conf/bitbake.conf >> @@ -644,7 +644,8 @@ EXTRA_OEMAKE:prepend:task-install = "${PARALLEL_MAKEINST} " >> # Optimization flags. >> ################################################################## >> # Beware: applied last to first >> -DEBUG_PREFIX_MAP ?= "-fmacro-prefix-map=${S}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR} \ >> +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} \ >> -- >> 2.40.1 >> >> >> >> > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#180526): https://lists.openembedded.org/g/openembedded-core/message/180526 > Mute This Topic: https://lists.openembedded.org/mt/98551742/1997914 > Group Owner: openembedded-core+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [raj.khem@gmail.com] > -=-=-=-=-=-=-=-=-=-=-=- >
On 4/28/23 05:20, Khem Raj wrote: > This should help canonicalize the relative paths and symlinks > during cross compile, -fcanon-prefix-map is newly added in gcc-13+ [1] > > [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108464#c8 > Signed-off-by: Khem Raj <raj.khem@gmail.com> > --- > meta/conf/bitbake.conf | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf > index d94ffe1df9..453bef37a9 100644 > --- a/meta/conf/bitbake.conf > +++ b/meta/conf/bitbake.conf > @@ -644,7 +644,8 @@ EXTRA_OEMAKE:prepend:task-install = "${PARALLEL_MAKEINST} " > # Optimization flags. > ################################################################## > # Beware: applied last to first > -DEBUG_PREFIX_MAP ?= "-fmacro-prefix-map=${S}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR} \ > +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} \ > Maybe we can take the opportunity to also cleanup DEBUG_PREFIX_MAP by replacing debug/macro/canon with a single -ffile-prefix-map ? From the gcc 13.1.1 manpage: > -ffile-prefix-map=old=new > When compiling files residing in directory old, record any references to them in the result of the > compilation as if the files resided in directory new instead. Specifying this option is equivalent to > specifying all the individual -f*-prefix-map options. This can be used to make reproducible builds > that are location independent. Directories referenced by directives are not affected by these options. > See also -fmacro-prefix-map, -fdebug-prefix-map, -fprofile-prefix-map and -fcanon-prefix-map. Jacob
On Fri, May 26, 2023 at 10:27 PM Jacob Kroon <jacob.kroon@gmail.com> wrote: > > On 4/28/23 05:20, Khem Raj wrote: > > This should help canonicalize the relative paths and symlinks > > during cross compile, -fcanon-prefix-map is newly added in gcc-13+ [1] > > > > [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108464#c8 > > Signed-off-by: Khem Raj <raj.khem@gmail.com> > > --- > > meta/conf/bitbake.conf | 3 ++- > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf > > index d94ffe1df9..453bef37a9 100644 > > --- a/meta/conf/bitbake.conf > > +++ b/meta/conf/bitbake.conf > > @@ -644,7 +644,8 @@ EXTRA_OEMAKE:prepend:task-install = "${PARALLEL_MAKEINST} " > > # Optimization flags. > > ################################################################## > > # Beware: applied last to first > > -DEBUG_PREFIX_MAP ?= "-fmacro-prefix-map=${S}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR} \ > > +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} \ > > > > Maybe we can take the opportunity to also cleanup DEBUG_PREFIX_MAP by > replacing debug/macro/canon with a single -ffile-prefix-map ? Yes, somewhere I had such a patch and I dropped it from my queue IIRC it was for clang alone maybe but it is not a simple replacement, we have to adjust some recipes to this option, > > From the gcc 13.1.1 manpage: > > > -ffile-prefix-map=old=new > > When compiling files residing in directory old, record any references to them in the result of the > > compilation as if the files resided in directory new instead. Specifying this option is equivalent to > > specifying all the individual -f*-prefix-map options. This can be used to make reproducible builds > > that are location independent. Directories referenced by directives are not affected by these options. > > See also -fmacro-prefix-map, -fdebug-prefix-map, -fprofile-prefix-map and -fcanon-prefix-map. > > Jacob
On Sat, 2023-05-27 at 07:27 +0200, Jacob Kroon wrote: > On 4/28/23 05:20, Khem Raj wrote: > > This should help canonicalize the relative paths and symlinks > > during cross compile, -fcanon-prefix-map is newly added in gcc-13+ [1] > > > > [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108464#c8 > > Signed-off-by: Khem Raj <raj.khem@gmail.com> > > --- > > meta/conf/bitbake.conf | 3 ++- > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf > > index d94ffe1df9..453bef37a9 100644 > > --- a/meta/conf/bitbake.conf > > +++ b/meta/conf/bitbake.conf > > @@ -644,7 +644,8 @@ EXTRA_OEMAKE:prepend:task-install = "${PARALLEL_MAKEINST} " > > # Optimization flags. > > ################################################################## > > # Beware: applied last to first > > -DEBUG_PREFIX_MAP ?= "-fmacro-prefix-map=${S}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR} \ > > +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} \ > > > > Maybe we can take the opportunity to also cleanup DEBUG_PREFIX_MAP by > replacing debug/macro/canon with a single -ffile-prefix-map ? > > From the gcc 13.1.1 manpage: > > > -ffile-prefix-map=old=new > > When compiling files residing in directory old, record any references to them in the result of the > > compilation as if the files resided in directory new instead. Specifying this option is equivalent to > > specifying all the individual -f*-prefix-map options. This can be used to make reproducible builds > > that are location independent. Directories referenced by directives are not affected by these options. > > See also -fmacro-prefix-map, -fdebug-prefix-map, -fprofile-prefix-map and -fcanon-prefix-map. > Sadly not, I'd wondered about this too and tried it fairly recently. From memory, the issue is that there are tools which only accept one of these (binutils as maybe?) and if we switch, we lose some set of the prefix mapping which causes build reproducible issues. I'd love to do it but only once it doesn't break things. It may be possible to pass in different options to the different tools but at that point it started looking too complex for the time I had available to test. Cheers, Richard
diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf index d94ffe1df9..453bef37a9 100644 --- a/meta/conf/bitbake.conf +++ b/meta/conf/bitbake.conf @@ -644,7 +644,8 @@ EXTRA_OEMAKE:prepend:task-install = "${PARALLEL_MAKEINST} " # Optimization flags. ################################################################## # Beware: applied last to first -DEBUG_PREFIX_MAP ?= "-fmacro-prefix-map=${S}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR} \ +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} \
This should help canonicalize the relative paths and symlinks during cross compile, -fcanon-prefix-map is newly added in gcc-13+ [1] [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108464#c8 Signed-off-by: Khem Raj <raj.khem@gmail.com> --- meta/conf/bitbake.conf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)