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 dba25eb754..bc17f10468 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 ec87b46219..adcaef2b0f 100644
--- a/meta/recipes-devtools/gcc/gcc-cross-canadian.inc
+++ b/meta/recipes-devtools/gcc/gcc-cross-canadian.inc
@@ -63,6 +63,9 @@ do_configure () {
63} 63}
64 64
65do_compile () { 65do_compile () {
66 remove_sysroot_paths_from_configargs '/host'
67 remove_sysroot_paths_from_checksum_options '${STAGING_DIR_HOST}' '/host'
68
66 oe_runmake all-host configure-target-libgcc 69 oe_runmake all-host configure-target-libgcc
67 (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)
68} 71}
diff --git a/meta/recipes-devtools/gcc/gcc-cross.inc b/meta/recipes-devtools/gcc/gcc-cross.inc
index a540fb2434..1dbb6dc42b 100644
--- a/meta/recipes-devtools/gcc/gcc-cross.inc
+++ b/meta/recipes-devtools/gcc/gcc-cross.inc
@@ -61,19 +61,8 @@ do_compile () {
61 export CXXFLAGS_FOR_TARGET="${TARGET_CXXFLAGS}" 61 export CXXFLAGS_FOR_TARGET="${TARGET_CXXFLAGS}"
62 export LDFLAGS_FOR_TARGET="${TARGET_LDFLAGS}" 62 export LDFLAGS_FOR_TARGET="${TARGET_LDFLAGS}"
63 63
64 # Prevent native/host sysroot path from being used in configargs.h header, 64 remove_sysroot_paths_from_configargs '/host'
65 # as it will be rewritten when used by other sysroots preventing support 65 remove_sysroot_paths_from_checksum_options '${STAGING_DIR_HOST}' '/host'
66 # for gcc plugins
67 oe_runmake configure-gcc
68 sed -i 's@${STAGING_DIR_TARGET}@/host@g' ${B}/gcc/configargs.h
69 sed -i 's@${STAGING_DIR_HOST}@/host@g' ${B}/gcc/configargs.h
70
71 # Prevent sysroot/workdir paths from being used in checksum-options.
72 # checksum-options is used to generate a checksum which is embedded into
73 # the output binary.
74 oe_runmake TARGET-gcc=checksum-options all-gcc
75 sed -i 's@${DEBUG_PREFIX_MAP}@@g' ${B}/gcc/checksum-options
76 sed -i 's@${STAGING_DIR_HOST}@/host@g' ${B}/gcc/checksum-options
77 66
78 oe_runmake all-host configure-target-libgcc 67 oe_runmake all-host configure-target-libgcc
79 (cd ${B}/${TARGET_SYS}/libgcc; oe_runmake enable-execute-stack.c unwind.h md-unwind-support.h sfp-machine.h gthr-default.h) 68 (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 7dac3ef422..f51d94cd65 100644
--- a/meta/recipes-devtools/gcc/gcc-target.inc
+++ b/meta/recipes-devtools/gcc/gcc-target.inc
@@ -140,20 +140,8 @@ FILES:${PN}-doc = "\
140" 140"
141 141
142do_compile () { 142do_compile () {
143 # Prevent full target sysroot path from being used in configargs.h header, 143 remove_sysroot_paths_from_configargs '/'
144 # as it will be rewritten when used by other sysroots preventing support 144 remove_sysroot_paths_from_checksum_options '${STAGING_DIR_TARGET}' '/'
145 # for gcc plugins. Additionally the path is embeddeded into the output
146 # binary, this prevents building a reproducible binary.
147 oe_runmake configure-gcc
148 sed -i 's@${STAGING_DIR_TARGET}@/@g' ${B}/gcc/configargs.h
149 sed -i 's@${STAGING_DIR_HOST}@/@g' ${B}/gcc/configargs.h
150
151 # Prevent sysroot/workdir paths from being used in checksum-options.
152 # checksum-options is used to generate a checksum which is embedded into
153 # the output binary.
154 oe_runmake TARGET-gcc=checksum-options all-gcc
155 sed -i 's@${DEBUG_PREFIX_MAP}@@g' ${B}/gcc/checksum-options
156 sed -i 's@${STAGING_DIR_TARGET}@/@g' ${B}/gcc/checksum-options
157 145
158 oe_runmake all-host 146 oe_runmake all-host
159} 147}