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 | } |
