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 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 | ||
| 65 | do_compile () { | 65 | do_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 | ||
| 142 | do_compile () { | 142 | do_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 | } |
