Re: [OE-core] [master][PATCH 3/4] bitbake.conf: add DEBUG_PREFIX_MAP to TARGET_LDFLAGS
On Thu, 2021-08-05 at 17:00 +0100, Richard Purdie via lists.openembedded.org wrote: > On Tue, 2021-07-27 at 09:36 -0400, Tony Battersby wrote: > > -f*-prefix-map flags are required when linking with LTO enabled to make > > the output binary reproducible. > > > > See discussion here: > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101473 > > > > [YOCTO #14481] > > > > Signed-off-by: Tony Battersby > > --- > > > > /usr/sbin/lspci from pciutils is a good program to test that shows how > > adding -f*-prefix-map to LDFLAGS makes a program binary reproducible > > with LTO enabled. > > > > meta/conf/bitbake.conf | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf > > index 160abf40ee..c0d2e3f82f 100644 > > --- a/meta/conf/bitbake.conf > > +++ b/meta/conf/bitbake.conf > > @@ -595,7 +595,7 @@ TARGET_LINK_HASH_STYLE ?= > > "${@['-Wl,--hash-style=gnu',''][d.getVar('LINKER_HASH_ > > ASNEEDED ?= "-Wl,--as-needed" > > > > > > export LDFLAGS = "${TARGET_LDFLAGS}" > > -TARGET_LDFLAGS = "-Wl,-O1 ${TARGET_LINK_HASH_STYLE} ${ASNEEDED}" > > +TARGET_LDFLAGS = "-Wl,-O1 ${TARGET_LINK_HASH_STYLE} ${ASNEEDED} > > ${DEBUG_PREFIX_MAP}" > > # mips does not support GNU hash style therefore we override > > LINKER_HASH_STYLE_mipsarch_libc-musl = "sysv" > > > > This failed in testing in ruby: > > https://autobuilder.yoctoproject.org/typhoon/#/builders/115/builds/514 > > The error is a bit obtuse but in summary, the file: > > /tmp/work/core2-64-poky-linux/ruby/3.0.2-r0/sysroot-destdir/usr/lib/pkgconfig/ruby-3.0.pc > The fix for this looked relatively straight forward so I've queued a patch in master-next for this. Cheers, Richard -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#154520): https://lists.openembedded.org/g/openembedded-core/message/154520 Mute This Topic: https://lists.openembedded.org/mt/84481698/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [OE-core] [master][PATCH 3/4] bitbake.conf: add DEBUG_PREFIX_MAP to TARGET_LDFLAGS
On Tue, 2021-07-27 at 09:36 -0400, Tony Battersby wrote: > -f*-prefix-map flags are required when linking with LTO enabled to make > the output binary reproducible. > > See discussion here: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101473 > > [YOCTO #14481] > > Signed-off-by: Tony Battersby > --- > > /usr/sbin/lspci from pciutils is a good program to test that shows how > adding -f*-prefix-map to LDFLAGS makes a program binary reproducible > with LTO enabled. > > meta/conf/bitbake.conf | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf > index 160abf40ee..c0d2e3f82f 100644 > --- a/meta/conf/bitbake.conf > +++ b/meta/conf/bitbake.conf > @@ -595,7 +595,7 @@ TARGET_LINK_HASH_STYLE ?= > "${@['-Wl,--hash-style=gnu',''][d.getVar('LINKER_HASH_ > ASNEEDED ?= "-Wl,--as-needed" > > > export LDFLAGS = "${TARGET_LDFLAGS}" > -TARGET_LDFLAGS = "-Wl,-O1 ${TARGET_LINK_HASH_STYLE} ${ASNEEDED}" > +TARGET_LDFLAGS = "-Wl,-O1 ${TARGET_LINK_HASH_STYLE} ${ASNEEDED} > ${DEBUG_PREFIX_MAP}" > # mips does not support GNU hash style therefore we override > LINKER_HASH_STYLE_mipsarch_libc-musl = "sysv" > This failed in testing in ruby: https://autobuilder.yoctoproject.org/typhoon/#/builders/115/builds/514 The error is a bit obtuse but in summary, the file: /tmp/work/core2-64-poky-linux/ruby/3.0.2-r0/sysroot-destdir/usr/lib/pkgconfig/ruby-3.0.pc contained build paths as it adds LDFLAGS to the file with a line like: DLDFLAGS=-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -fmacro-prefix-map=/home/pokybuild/yocto- worker/reproducible-centos/build/build-st/reproducibleA/tmp/work/core2-64-poky-linux/ruby/3.0.2- r0=/usr/src/debug/ruby/3.0.2-r0 -fdebug-prefix-map=/home/pokybuild/yocto-worker/reproducible- centos/build/build-st/reproducibleA/tmp/work/core2-64-poky-linux/ruby/3.0.2-r0=/usr/src/debug/ruby/3.0.2-r0 - fdebug-prefix-map=/home/pokybuild/yocto-worker/reproducible-centos/build/build- st/reproducibleA/tmp/work/core2-64-poky-linux/ruby/3.0.2-r0/recipe-sysroot= -fdebug-prefix- map=/home/pokybuild/yocto-worker/reproducible-centos/build/build-st/reproducibleA/tmp/work/core2-64-poky- linux/ruby/3.0.2-r0/recipe-sysroot-native= -Wl,-z,relro,-z,now -Wl,--compress-debug-sections=zlib Cheers, Richard -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#154518): https://lists.openembedded.org/g/openembedded-core/message/154518 Mute This Topic: https://lists.openembedded.org/mt/84481698/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
Re: [OE-core] [master][PATCH 3/4] bitbake.conf: add DEBUG_PREFIX_MAP to TARGET_LDFLAGS
On 7/27/21 6:36 AM, Tony Battersby wrote: -f*-prefix-map flags are required when linking with LTO enabled to make the output binary reproducible. See discussion here: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101473 [YOCTO #14481] Looks ok Signed-off-by: Tony Battersby --- /usr/sbin/lspci from pciutils is a good program to test that shows how adding -f*-prefix-map to LDFLAGS makes a program binary reproducible with LTO enabled. meta/conf/bitbake.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf index 160abf40ee..c0d2e3f82f 100644 --- a/meta/conf/bitbake.conf +++ b/meta/conf/bitbake.conf @@ -595,7 +595,7 @@ TARGET_LINK_HASH_STYLE ?= "${@['-Wl,--hash-style=gnu',''][d.getVar('LINKER_HASH_ ASNEEDED ?= "-Wl,--as-needed" export LDFLAGS = "${TARGET_LDFLAGS}" -TARGET_LDFLAGS = "-Wl,-O1 ${TARGET_LINK_HASH_STYLE} ${ASNEEDED}" +TARGET_LDFLAGS = "-Wl,-O1 ${TARGET_LINK_HASH_STYLE} ${ASNEEDED} ${DEBUG_PREFIX_MAP}" # mips does not support GNU hash style therefore we override LINKER_HASH_STYLE_mipsarch_libc-musl = "sysv" -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#154180): https://lists.openembedded.org/g/openembedded-core/message/154180 Mute This Topic: https://lists.openembedded.org/mt/84481698/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-
[OE-core] [master][PATCH 3/4] bitbake.conf: add DEBUG_PREFIX_MAP to TARGET_LDFLAGS
-f*-prefix-map flags are required when linking with LTO enabled to make the output binary reproducible. See discussion here: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101473 [YOCTO #14481] Signed-off-by: Tony Battersby --- /usr/sbin/lspci from pciutils is a good program to test that shows how adding -f*-prefix-map to LDFLAGS makes a program binary reproducible with LTO enabled. meta/conf/bitbake.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf index 160abf40ee..c0d2e3f82f 100644 --- a/meta/conf/bitbake.conf +++ b/meta/conf/bitbake.conf @@ -595,7 +595,7 @@ TARGET_LINK_HASH_STYLE ?= "${@['-Wl,--hash-style=gnu',''][d.getVar('LINKER_HASH_ ASNEEDED ?= "-Wl,--as-needed" export LDFLAGS = "${TARGET_LDFLAGS}" -TARGET_LDFLAGS = "-Wl,-O1 ${TARGET_LINK_HASH_STYLE} ${ASNEEDED}" +TARGET_LDFLAGS = "-Wl,-O1 ${TARGET_LINK_HASH_STYLE} ${ASNEEDED} ${DEBUG_PREFIX_MAP}" # mips does not support GNU hash style therefore we override LINKER_HASH_STYLE_mipsarch_libc-musl = "sysv" -- 2.25.1 -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#154164): https://lists.openembedded.org/g/openembedded-core/message/154164 Mute This Topic: https://lists.openembedded.org/mt/84481698/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-