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
+ 
+-- 
+2.25.1
+
-- 
2.26.2.Cisco

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#157514): 
https://lists.openembedded.org/g/openembedded-core/message/157514
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