summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/recipes-devtools/gcc/gcc-common.inc22
-rw-r--r--meta/recipes-devtools/gcc/gcc-configure-common.inc1
-rw-r--r--meta/recipes-devtools/gcc/gcc-cross-canadian.inc3
-rw-r--r--meta/recipes-devtools/gcc/gcc-cross.inc15
-rw-r--r--meta/recipes-devtools/gcc/gcc-target.inc16
5 files changed, 29 insertions, 28 deletions
diff --git a/meta/recipes-devtools/gcc/gcc-common.inc b/meta/recipes-devtools/gcc/gcc-common.inc
index 5ac82b1b57..7f5cc109e6 100644
--- a/meta/recipes-devtools/gcc/gcc-common.inc
+++ b/meta/recipes-devtools/gcc/gcc-common.inc
@@ -116,3 +116,25 @@ target_prefix ?= "${prefix}"
116# The real WORKDIR location isn't a dependency for the shared workdir. 116# The real WORKDIR location isn't a dependency for the shared workdir.
117src_patches[vardepsexclude] = "WORKDIR" 117src_patches[vardepsexclude] = "WORKDIR"
118should_apply[vardepsexclude] += "PN" 118should_apply[vardepsexclude] += "PN"
119
120remove_sysroot_paths_from_configargs () {
121 replacement=${1}
122 # Prevent sysroot path from being used in configargs.h header, as it will
123 # be rewritten when used by other sysroots preventing support for gcc
124 # plugins. Additionally the path is embeddeded into the output binary, this
125 # prevents building a reproducible binary.
126 oe_runmake configure-gcc
127 sed -i "s@${STAGING_DIR_TARGET}@$replacement@g" ${B}/gcc/configargs.h
128 sed -i "s@${STAGING_DIR_HOST}@/$replacement@g" ${B}/gcc/configargs.h
129}
130
131remove_sysroot_paths_from_checksum_options () {
132 stagingdir=${1}
133 replacement=${2}
134 # Prevent sysroot/workdir paths from being used in checksum-options.
135 # checksum-options is used to generate a checksum which is embedded into
136 # the output binary.
137 oe_runmake TARGET-gcc=checksum-options all-gcc
138 sed -i "s@${DEBUG_PREFIX_MAP}@@g" ${B}/gcc/checksum-options
139 sed -i "s@$stagingdir@$replacement@g" ${B}/gcc/checksum-options
140}
diff --git a/meta/recipes-devtools/gcc/gcc-configure-common.inc b/meta/recipes-devtools/gcc/gcc-configure-common.inc
index d77b2ec3d1..5c79936242 100644
--- a/meta/recipes-devtools/gcc/gcc-configure-common.inc
+++ b/meta/recipes-devtools/gcc/gcc-configure-common.inc
@@ -119,4 +119,3 @@ do_configure () {
119 119
120 oe_runconf 120 oe_runconf
121} 121}
122
diff --git a/meta/recipes-devtools/gcc/gcc-cross-canadian.inc b/meta/recipes-devtools/gcc/gcc-cross-canadian.inc
index 7c4233c211..1b183d6fc1 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 () {
64} 64}
65 65
66do_compile () { 66do_compile () {
67 remove_sysroot_paths_from_configargs '/host'
68 remove_sysroot_paths_from_checksum_options '${STAGING_DIR_HOST}' '/host'
69
67 oe_runmake all-host configure-target-libgcc 70 oe_runmake all-host configure-target-libgcc
68 (cd ${B}/${TARGET_SYS}/libgcc; oe_runmake enable-execute-stack.c unwind.h md-unwind-support.h sfp-machine.h gthr-default.h) 71 (cd ${B}/${TARGET_SYS}/libgcc; oe_runmake enable-execute-stack.c unwind.h md-unwind-support.h sfp-machine.h gthr-default.h)
69} 72}
diff --git a/meta/recipes-devtools/gcc/gcc-cross.inc b/meta/recipes-devtools/gcc/gcc-cross.inc
index c04177df5a..68e33c7358 100644
--- a/meta/recipes-devtools/gcc/gcc-cross.inc
+++ b/meta/recipes-devtools/gcc/gcc-cross.inc
@@ -63,19 +63,8 @@ do_compile () {
63 export CXXFLAGS_FOR_TARGET="${TARGET_CXXFLAGS}" 63 export CXXFLAGS_FOR_TARGET="${TARGET_CXXFLAGS}"
64 export LDFLAGS_FOR_TARGET="${TARGET_LDFLAGS}" 64 export LDFLAGS_FOR_TARGET="${TARGET_LDFLAGS}"
65 65
66 # Prevent native/host sysroot path from being used in configargs.h header, 66 remove_sysroot_paths_from_configargs '/host'
67 # as it will be rewritten when used by other sysroots preventing support 67 remove_sysroot_paths_from_checksum_options '${STAGING_DIR_HOST}' '/host'
68 # for gcc plugins
69 oe_runmake configure-gcc
70 sed -i 's@${STAGING_DIR_TARGET}@/host@g' ${B}/gcc/configargs.h
71 sed -i 's@${STAGING_DIR_HOST}@/host@g' ${B}/gcc/configargs.h
72
73 # Prevent sysroot/workdir paths from being used in checksum-options.
74 # checksum-options is used to generate a checksum which is embedded into
75 # the output binary.
76 oe_runmake TARGET-gcc=checksum-options all-gcc
77 sed -i 's@${DEBUG_PREFIX_MAP}@@g' ${B}/gcc/checksum-options
78 sed -i 's@${STAGING_DIR_HOST}@/host@g' ${B}/gcc/checksum-options
79 68
80 oe_runmake all-host configure-target-libgcc 69 oe_runmake all-host configure-target-libgcc
81 (cd ${B}/${TARGET_SYS}/libgcc; oe_runmake enable-execute-stack.c unwind.h md-unwind-support.h sfp-machine.h gthr-default.h) 70 (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 e9187fc444..c847838ec7 100644
--- a/meta/recipes-devtools/gcc/gcc-target.inc
+++ b/meta/recipes-devtools/gcc/gcc-target.inc
@@ -132,20 +132,8 @@ FILES:${PN}-doc = "\
132" 132"
133 133
134do_compile () { 134do_compile () {
135 # Prevent full target sysroot path from being used in configargs.h header, 135 remove_sysroot_paths_from_configargs '/'
136 # as it will be rewritten when used by other sysroots preventing support 136 remove_sysroot_paths_from_checksum_options '${STAGING_DIR_TARGET}' '/'
137 # for gcc plugins. Additionally the path is embeddeded into the output
138 # binary, this prevents building a reproducible binary.
139 oe_runmake configure-gcc
140 sed -i 's@${STAGING_DIR_TARGET}@/@g' ${B}/gcc/configargs.h
141 sed -i 's@${STAGING_DIR_HOST}@/@g' ${B}/gcc/configargs.h
142
143 # Prevent sysroot/workdir paths from being used in checksum-options.
144 # checksum-options is used to generate a checksum which is embedded into
145 # the output binary.
146 oe_runmake TARGET-gcc=checksum-options all-gcc
147 sed -i 's@${DEBUG_PREFIX_MAP}@@g' ${B}/gcc/checksum-options
148 sed -i 's@${STAGING_DIR_TARGET}@/@g' ${B}/gcc/checksum-options
149 137
150 oe_runmake all-host 138 oe_runmake all-host
151} 139}