Apply fixes from gcc-cross (84a78f46d594 and 0ead8cbdfb96) to 
gcc-cross-canadian.
This will improve (but not fix) reproducibility of gcc-cross-canadian.
Also move this code to functions to avoid code duplication.

Signed-off-by: Oleksandr Hnatiuk <[email protected]>
---
 .../gcc/gcc-configure-common.inc              | 19 +++++++++++++++++++
 .../gcc/gcc-cross-canadian.inc                |  3 +++
 meta/recipes-devtools/gcc/gcc-cross.inc       | 15 ++-------------
 meta/recipes-devtools/gcc/gcc-target.inc      | 16 ++--------------
 4 files changed, 26 insertions(+), 27 deletions(-)

diff --git a/meta/recipes-devtools/gcc/gcc-configure-common.inc 
b/meta/recipes-devtools/gcc/gcc-configure-common.inc
index d77b2ec3d1de..c936d1a9bd7b 100644
--- a/meta/recipes-devtools/gcc/gcc-configure-common.inc
+++ b/meta/recipes-devtools/gcc/gcc-configure-common.inc
@@ -120,3 +120,22 @@ do_configure () {
        oe_runconf
 }
 
+remove_sysroot_paths_from_configargs () {
+       # Prevent sysroot path from being used in configargs.h header, as it 
will
+       # be rewritten when used by other sysroots preventing support for gcc
+       # plugins. Additionally the path is embeddeded into the output binary, 
this
+       # prevents building a reproducible binary.
+       oe_runmake configure-gcc
+       sed -i 's@${STAGING_DIR_TARGET}@/host@g' ${B}/gcc/configargs.h
+       sed -i 's@${STAGING_DIR_HOST}@/host@g' ${B}/gcc/configargs.h
+}
+
+remove_sysroot_paths_from_checksum_options () {
+       # Prevent sysroot/workdir paths from being used in checksum-options.
+       # checksum-options is used to generate a checksum which is embedded into
+       # the output binary.
+       oe_runmake TARGET-gcc=checksum-options all-gcc
+       sed -i 's@${DEBUG_PREFIX_MAP}@@g' ${B}/gcc/checksum-options
+       sed -i 's@${1}@/host@g' ${B}/gcc/checksum-options
+}
+
diff --git a/meta/recipes-devtools/gcc/gcc-cross-canadian.inc 
b/meta/recipes-devtools/gcc/gcc-cross-canadian.inc
index 7c4233c21157..9528b71272dd 100644
--- a/meta/recipes-devtools/gcc/gcc-cross-canadian.inc
+++ b/meta/recipes-devtools/gcc/gcc-cross-canadian.inc
@@ -64,6 +64,9 @@ do_configure () {
 }
 
 do_compile () {
+       remove_sysroot_paths_from_configargs
+       remove_sysroot_paths_from_checksum_options '${STAGING_DIR_HOST}'
+
        oe_runmake all-host configure-target-libgcc
        (cd ${B}/${TARGET_SYS}/libgcc; oe_runmake enable-execute-stack.c 
unwind.h md-unwind-support.h sfp-machine.h gthr-default.h)
 }
diff --git a/meta/recipes-devtools/gcc/gcc-cross.inc 
b/meta/recipes-devtools/gcc/gcc-cross.inc
index 5b0ca15d4762..f8a7730cf322 100644
--- a/meta/recipes-devtools/gcc/gcc-cross.inc
+++ b/meta/recipes-devtools/gcc/gcc-cross.inc
@@ -62,19 +62,8 @@ do_compile () {
        export CXXFLAGS_FOR_TARGET="${TARGET_CXXFLAGS}"
        export LDFLAGS_FOR_TARGET="${TARGET_LDFLAGS}"
 
-       # Prevent native/host sysroot path from being used in configargs.h 
header,
-       # as it will be rewritten when used by other sysroots preventing support
-       # for gcc plugins
-       oe_runmake configure-gcc
-       sed -i 's@${STAGING_DIR_TARGET}@/host@g' ${B}/gcc/configargs.h
-       sed -i 's@${STAGING_DIR_HOST}@/host@g' ${B}/gcc/configargs.h
-
-       # Prevent sysroot/workdir paths from being used in checksum-options.
-       # checksum-options is used to generate a checksum which is embedded into
-       # the output binary.
-       oe_runmake TARGET-gcc=checksum-options all-gcc
-       sed -i 's@${DEBUG_PREFIX_MAP}@@g' ${B}/gcc/checksum-options
-       sed -i 's@${STAGING_DIR_HOST}@/host@g' ${B}/gcc/checksum-options
+       remove_sysroot_paths_from_configargs
+       remove_sysroot_paths_from_checksum_options '${STAGING_DIR_HOST}'
 
        oe_runmake all-host configure-target-libgcc
        (cd ${B}/${TARGET_SYS}/libgcc; oe_runmake enable-execute-stack.c 
unwind.h md-unwind-support.h sfp-machine.h gthr-default.h)
diff --git a/meta/recipes-devtools/gcc/gcc-target.inc 
b/meta/recipes-devtools/gcc/gcc-target.inc
index e9187fc444b9..bd7506fe3a55 100644
--- a/meta/recipes-devtools/gcc/gcc-target.inc
+++ b/meta/recipes-devtools/gcc/gcc-target.inc
@@ -132,20 +132,8 @@ FILES:${PN}-doc = "\
 "
 
 do_compile () {
-       # Prevent full target sysroot path from being used in configargs.h 
header,
-       # as it will be rewritten when used by other sysroots preventing support
-       # for gcc plugins. Additionally the path is embeddeded into the output
-       # binary, this prevents building a reproducible binary.
-       oe_runmake configure-gcc
-       sed -i 's@${STAGING_DIR_TARGET}@/@g' ${B}/gcc/configargs.h
-       sed -i 's@${STAGING_DIR_HOST}@/@g' ${B}/gcc/configargs.h
-
-       # Prevent sysroot/workdir paths from being used in checksum-options.
-       # checksum-options is used to generate a checksum which is embedded into
-       # the output binary.
-       oe_runmake TARGET-gcc=checksum-options all-gcc
-       sed -i 's@${DEBUG_PREFIX_MAP}@@g' ${B}/gcc/checksum-options
-       sed -i 's@${STAGING_DIR_TARGET}@/@g' ${B}/gcc/checksum-options
+       remove_sysroot_paths_from_configargs
+       remove_sysroot_paths_from_checksum_options '${STAGING_DIR_TARGET}'
 
        oe_runmake all-host
 }
-- 
2.35.6

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#202151): 
https://lists.openembedded.org/g/openembedded-core/message/202151
Mute This Topic: https://lists.openembedded.org/mt/107268307/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to