Re: [OE-core] [master][PATCH 3/4] bitbake.conf: add DEBUG_PREFIX_MAP to TARGET_LDFLAGS

2021-08-05 Thread Richard Purdie
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

2021-08-05 Thread Richard Purdie
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

2021-07-27 Thread Khem Raj



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

2021-07-27 Thread Tony Battersby
-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]
-=-=-=-=-=-=-=-=-=-=-=-