diff options
-rw-r--r-- | meta/recipes-devtools/gcc/gcc-common.inc | 22 | ||||
-rw-r--r-- | meta/recipes-devtools/gcc/gcc-configure-common.inc | 1 | ||||
-rw-r--r-- | meta/recipes-devtools/gcc/gcc-cross-canadian.inc | 3 | ||||
-rw-r--r-- | meta/recipes-devtools/gcc/gcc-cross.inc | 15 | ||||
-rw-r--r-- | meta/recipes-devtools/gcc/gcc-target.inc | 16 |
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. |
117 | src_patches[vardepsexclude] = "WORKDIR" | 117 | src_patches[vardepsexclude] = "WORKDIR" |
118 | should_apply[vardepsexclude] += "PN" | 118 | should_apply[vardepsexclude] += "PN" |
119 | |||
120 | remove_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 | |||
131 | remove_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 | ||
66 | do_compile () { | 66 | do_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 | ||
134 | do_compile () { | 134 | do_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 | } |