diff mbox series

[v2] package/gcc: map debug prefix when reproducible

Message ID 20230207195810.2016594-1-john@metanate.com
State Accepted
Headers show
Series [v2] package/gcc: map debug prefix when reproducible | expand

Commit Message

John Keeping Feb. 7, 2023, 7:58 p.m. UTC
When building with BR2_REPRODUCIBLE the toolchain wrapper passes
-fdebug-prefix-map for all packages that are built.  But this doesn't
affect the target libraries (like libgcc) built by GCC's build system.

GCC 4.3 added a configure option to set the debug prefix map for these
libraries, which is used here to avoid encoding potentially
non-reproducible build paths into the debug data.

Signed-off-by: John Keeping <john@metanate.com>
---
Changes since v1:
- Add the option to GCC common config, not just gcc-final

 package/gcc/gcc.mk | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Yann E. MORIN Feb. 7, 2023, 10:47 p.m. UTC | #1
John, All,

On 2023-02-07 19:58 +0000, John Keeping spake thusly:
> When building with BR2_REPRODUCIBLE the toolchain wrapper passes
> -fdebug-prefix-map for all packages that are built.  But this doesn't
> affect the target libraries (like libgcc) built by GCC's build system.
> 
> GCC 4.3 added a configure option to set the debug prefix map for these
> libraries, which is used here to avoid encoding potentially
> non-reproducible build paths into the debug data.
> 
> Signed-off-by: John Keeping <john@metanate.com>

After burnng through ~80% of my battery testing this: applied to
master, thanks.

Regards,
Yann E. MORIN.

> ---
> Changes since v1:
> - Add the option to GCC common config, not just gcc-final
> 
>  package/gcc/gcc.mk | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/package/gcc/gcc.mk b/package/gcc/gcc.mk
> index ec6f3b550a..6dfd93f2a4 100644
> --- a/package/gcc/gcc.mk
> +++ b/package/gcc/gcc.mk
> @@ -84,6 +84,10 @@ HOST_GCC_COMMON_CONF_OPTS = \
>  	--with-bugurl="http://bugs.buildroot.net/" \
>  	--without-zstd
>  
> +ifeq ($(BR2_REPRODUCIBLE),y)
> +HOST_GCC_COMMON_CONF_OPTS += --with-debug-prefix-map=$(BASE_DIR)=buildroot
> +endif
> +
>  # Don't build documentation. It takes up extra space / build time,
>  # and sometimes needs specific makeinfo versions to work
>  HOST_GCC_COMMON_CONF_ENV = \
> -- 
> 2.39.1
> 
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
diff mbox series

Patch

diff --git a/package/gcc/gcc.mk b/package/gcc/gcc.mk
index ec6f3b550a..6dfd93f2a4 100644
--- a/package/gcc/gcc.mk
+++ b/package/gcc/gcc.mk
@@ -84,6 +84,10 @@  HOST_GCC_COMMON_CONF_OPTS = \
 	--with-bugurl="http://bugs.buildroot.net/" \
 	--without-zstd
 
+ifeq ($(BR2_REPRODUCIBLE),y)
+HOST_GCC_COMMON_CONF_OPTS += --with-debug-prefix-map=$(BASE_DIR)=buildroot
+endif
+
 # Don't build documentation. It takes up extra space / build time,
 # and sometimes needs specific makeinfo versions to work
 HOST_GCC_COMMON_CONF_ENV = \