On Wed, 2021-10-27 at 07:09 -0700, Oleksiy Obitotskyy via lists.openembedded.org
wrote:
> Checksum depends on options that could be
> different from build to build, e.g. absolute patch.
> Remove checksum-options from
> executable checksum calculation.
> 
> Change-Id: Ifa184febecd2d517826beee784ca5ac7a1fb17fe
> Signed-off-by: Oleksiy Obitotskyy <oobit...@cisco.com>
> ---
>  meta/recipes-devtools/gcc/gcc-11.2.inc        |  1 +
>  ...emove-checksum-options-from-checksum.patch | 77 +++++++++++++++++++
>  2 files changed, 78 insertions(+)
>  create mode 100644 
> meta/recipes-devtools/gcc/gcc/0050-gcc-Remove-checksum-options-from-checksum.patch
> 
> diff --git a/meta/recipes-devtools/gcc/gcc-11.2.inc 
> b/meta/recipes-devtools/gcc/gcc-11.2.inc
> index 23dfea2319..ecac893980 100644
> --- a/meta/recipes-devtools/gcc/gcc-11.2.inc
> +++ b/meta/recipes-devtools/gcc/gcc-11.2.inc
> @@ -64,6 +64,7 @@ SRC_URI = "\
>             file://0036-mingw32-Enable-operation_not_supported.patch \
>             file://0037-libatomic-Do-not-enforce-march-on-aarch64.patch \
>             
> file://0041-apply-debug-prefix-maps-before-checksumming-DIEs.patch \
> +           file://0050-gcc-Remove-checksum-options-from-checksum.patch \
>  "
>  SRC_URI[sha256sum] = 
> "d08edc536b54c372a1010ff6619dd274c0f1603aa49212ba20f7aa2cda36fa8b"
>  
> diff --git 
> a/meta/recipes-devtools/gcc/gcc/0050-gcc-Remove-checksum-options-from-checksum.patch
>  
> b/meta/recipes-devtools/gcc/gcc/0050-gcc-Remove-checksum-options-from-checksum.patch
> new file mode 100644
> index 0000000000..50cff38c68
> --- /dev/null
> +++ 
> b/meta/recipes-devtools/gcc/gcc/0050-gcc-Remove-checksum-options-from-checksum.patch
> @@ -0,0 +1,77 @@
> +From 67402bb4013ea886b68a9f4ee1c2cb1472652dbf Mon Sep 17 00:00:00 2001
> +From: Oleksiy Obitotskyy <oobit...@cisco.com>
> +Date: Tue, 26 Jan 2021 04:32:27 -0800
> +Subject: [PATCH] gcc: Remove checksum-options from checksum
> +
> +Executable checksum calculated from object
> +files and options. Options could contain
> +absolute path and affect reproducibility.
> +To improve reproducibility remove
> +checksum-options conditionally from
> +executable checksum generation.
> +
> +Upstream-Status: Pending
> +Signed-off-by: Oleksiy Obitotskyy <oobit...@cisco.com>
> +---
> + gcc/c/Make-lang.in     | 2 +-
> + gcc/cp/Make-lang.in    | 2 +-
> + gcc/objc/Make-lang.in  | 3 ++-
> + gcc/objcp/Make-lang.in | 2 +-
> + 4 files changed, 5 insertions(+), 4 deletions(-)
> +
> +diff --git a/gcc/c/Make-lang.in b/gcc/c/Make-lang.in
> +index a1cdee872..6ee5c103b 100644
> +--- a/gcc/c/Make-lang.in
> ++++ b/gcc/c/Make-lang.in
> +@@ -78,7 +78,7 @@ cc1-checksum.c : build/genchecksum$(build_exeext) 
> checksum-options \
> +       cp ../prev-gcc/cc1-checksum.c cc1-checksum.c; \
> +     else \
> +       build/genchecksum$(build_exeext) $(C_OBJS) $(BACKEND) $(LIBDEPS) \
> +-                     checksum-options > cc1-checksum.c.tmp &&               
>  \
> ++                     $(if $(SOURCE_DATE_EPOCH),,checksum-options) > 
> cc1-checksum.c.tmp &&            \
> +       $(srcdir)/../move-if-change cc1-checksum.c.tmp cc1-checksum.c; \
> +     fi
> + 
> +diff --git a/gcc/cp/Make-lang.in b/gcc/cp/Make-lang.in
> +index 155be74ef..0ac6daa53 100644
> +--- a/gcc/cp/Make-lang.in
> ++++ b/gcc/cp/Make-lang.in
> +@@ -127,7 +127,7 @@ cc1plus-checksum.c : build/genchecksum$(build_exeext) 
> checksum-options \
> +        cp ../prev-gcc/cc1plus-checksum.c cc1plus-checksum.c; \
> +     else \
> +       build/genchecksum$(build_exeext) $(CXX_OBJS) $(BACKEND) $(CODYLIB) 
> $(LIBDEPS) \
> +-                     checksum-options > cc1plus-checksum.c.tmp &&      \
> ++                     $(if $(SOURCE_DATE_EPOCH),,checksum-options) > 
> cc1plus-checksum.c.tmp &&          \
> +       $(srcdir)/../move-if-change cc1plus-checksum.c.tmp 
> cc1plus-checksum.c; \
> +     fi
> + 
> +diff --git a/gcc/objc/Make-lang.in b/gcc/objc/Make-lang.in
> +index c91148a57..a83938ee7 100644
> +--- a/gcc/objc/Make-lang.in
> ++++ b/gcc/objc/Make-lang.in
> +@@ -60,7 +60,8 @@ objc_OBJS = $(OBJC_OBJS) cc1obj-checksum.o
> + cc1obj-checksum.c : build/genchecksum$(build_exeext) checksum-options \
> +         $(OBJC_OBJS) $(C_AND_OBJC_OBJS) $(BACKEND) $(LIBDEPS)
> +     build/genchecksum$(build_exeext) $(OBJC_OBJS) $(C_AND_OBJC_OBJS) \
> +-        $(BACKEND) $(LIBDEPS) checksum-options > cc1obj-checksum.c.tmp && \
> ++        $(BACKEND) $(LIBDEPS) \
> ++            $(if $(SOURCE_DATE_EPOCH),,checksum-options) > 
> cc1obj-checksum.c.tmp && \
> +     $(srcdir)/../move-if-change cc1obj-checksum.c.tmp cc1obj-checksum.c
> + 
> + cc1obj$(exeext): $(OBJC_OBJS) $(C_AND_OBJC_OBJS) cc1obj-checksum.o 
> $(BACKEND) \
> +diff --git a/gcc/objcp/Make-lang.in b/gcc/objcp/Make-lang.in
> +index dfa4d230e..ef16001c2 100644
> +--- a/gcc/objcp/Make-lang.in
> ++++ b/gcc/objcp/Make-lang.in
> +@@ -63,7 +63,7 @@ obj-c++_OBJS = $(OBJCXX_OBJS) cc1objplus-checksum.o
> + cc1objplus-checksum.c : build/genchecksum$(build_exeext) checksum-options \
> +     $(OBJCXX_OBJS) $(BACKEND) $(CODYLIB) $(LIBDEPS)
> +     build/genchecksum$(build_exeext) $(OBJCXX_OBJS) $(BACKEND) $(CODYLIB) \
> +-            $(LIBDEPS) checksum-options > cc1objplus-checksum.c.tmp && \
> ++            $(LIBDEPS) $(if $(SOURCE_DATE_EPOCH),,checksum-options) > 
> cc1objplus-checksum.c.tmp && \
> +     $(srcdir)/../move-if-change cc1objplus-checksum.c.tmp \
> +     cc1objplus-checksum.c
> + 


Do you know why we wouldn't see this issue on the autobuilder tests?

Also, do you plan to submit something upstream? Has this been discussed with
them? I'm starting to become reluctant to taking patches marked as "Pending"
which just sit in our tree forever...

Cheers,

Richard


-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#157561): 
https://lists.openembedded.org/g/openembedded-core/message/157561
Mute This Topic: https://lists.openembedded.org/mt/86628472/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to