diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-01-19 19:22:44 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-01-23 08:58:21 +0000 |
commit | 2c4569801a710f34a695b8d2a0ee7fc127fb34e4 (patch) | |
tree | 56589377837032065da274ed0bf00fbd0119e60b /meta/recipes-devtools/gcc | |
parent | ac162df288f6d8f68c1764fad0ab2d33b9cee281 (diff) | |
download | openembedded-core-2c4569801a710f34a695b8d2a0ee7fc127fb34e4.tar.gz openembedded-core-2c4569801a710f34a695b8d2a0ee7fc127fb34e4.tar.bz2 openembedded-core-2c4569801a710f34a695b8d2a0ee7fc127fb34e4.zip |
gcc: Ensure that the shared source directory shared the same sstate hashes
The fetch/unpack/patch/headerfix tasks are shared and hence their sstate hashes
should also match. Sadly this is not the case since:
a) gcc-runtime applies an additional patch
b) The do_headerfix task was missing from libgcc
c) The do_headerfix task is a shell task and hence depends
on all exported variables which can vary between cross and target
recipes.
To fix this, the patch moves the patch to the common code, adds
the headerfix task to a common include file and disabled shell
dependencies on the do_headerfix task since its clear in this case
we don't need thsoe dependencies since we just call sed.
With this patch applied, all these recipes now share common sstate checksums.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools/gcc')
-rw-r--r-- | meta/recipes-devtools/gcc/gcc-4.6.inc | 1 | ||||
-rw-r--r-- | meta/recipes-devtools/gcc/gcc-common.inc | 17 | ||||
-rw-r--r-- | meta/recipes-devtools/gcc/gcc-configure-common.inc | 15 | ||||
-rw-r--r-- | meta/recipes-devtools/gcc/gcc-runtime_4.6.bb | 2 |
4 files changed, 18 insertions, 17 deletions
diff --git a/meta/recipes-devtools/gcc/gcc-4.6.inc b/meta/recipes-devtools/gcc/gcc-4.6.inc index 4bbb2d22dc..a76fa0b4ce 100644 --- a/meta/recipes-devtools/gcc/gcc-4.6.inc +++ b/meta/recipes-devtools/gcc/gcc-4.6.inc @@ -73,6 +73,7 @@ SRC_URI = "svn://gcc.gnu.org/svn/gcc/branches;module=${BRANCH};proto=http \ file://pr47551.patch \ file://gcc-arm-set-cost.patch \ file://GPLUSPLUS_INCLUDE_DIR_with_sysroot.patch \ + file://fortran-cross-compile-hack.patch \ " SRC_URI_append_sh3 = " file://sh3-installfix-fixheaders.patch " diff --git a/meta/recipes-devtools/gcc/gcc-common.inc b/meta/recipes-devtools/gcc/gcc-common.inc index fe112d9d0a..ed41b0ff8a 100644 --- a/meta/recipes-devtools/gcc/gcc-common.inc +++ b/meta/recipes-devtools/gcc/gcc-common.inc @@ -88,3 +88,20 @@ python workshared_clean () { bb.note("Removing " + dir) oe.path.remove(dir) } + +do_headerfix () { + # Change the default dynamic linker path, in case $base_liddir is non-standard + # (e.g. in multilib or sdk cases) + # + # We want something like the following: + # #define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2" + # becomes + # #define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld-linux-x86-64.so.2" + # + sed -i ${S}/gcc/config/*/linux*.h -e \ + 's#\(GLIBC_DYNAMIC_LINKER[^ ]*\) \( *"/lib.*\)/\(.*\)#\1 SYSTEMLIBS_DIR "\3#' +} + +addtask headerfix after do_unpack before do_patch + +do_headerfix[vardepvalue] = "PATH" diff --git a/meta/recipes-devtools/gcc/gcc-configure-common.inc b/meta/recipes-devtools/gcc/gcc-configure-common.inc index d0149801db..c4b6ac1111 100644 --- a/meta/recipes-devtools/gcc/gcc-configure-common.inc +++ b/meta/recipes-devtools/gcc/gcc-configure-common.inc @@ -62,21 +62,6 @@ SYSTEMHEADERS = "${target_includedir}" SYSTEMLIBS = "${target_base_libdir}/" SYSTEMLIBS1 = "${target_libdir}/" -do_headerfix () { - # Change the default dynamic linker path, in case $base_liddir is non-standard - # (e.g. in multilib or sdk cases) - # - # We want something like the following: - # #define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2" - # becomes - # #define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld-linux-x86-64.so.2" - # - sed -i ${S}/gcc/config/*/linux*.h -e \ - 's#\(GLIBC_DYNAMIC_LINKER[^ ]*\) \( *"/lib.*\)/\(.*\)#\1 SYSTEMLIBS_DIR "\3#' -} - -addtask headerfix after do_unpack before do_patch - do_configure_prepend () { # teach gcc to find correct target includedir when checking libc ssp support mkdir -p ${B}/gcc diff --git a/meta/recipes-devtools/gcc/gcc-runtime_4.6.bb b/meta/recipes-devtools/gcc/gcc-runtime_4.6.bb index 568b5afaa9..97468db29f 100644 --- a/meta/recipes-devtools/gcc/gcc-runtime_4.6.bb +++ b/meta/recipes-devtools/gcc/gcc-runtime_4.6.bb @@ -2,8 +2,6 @@ require gcc-${PV}.inc require gcc-configure-runtime.inc require gcc-package-runtime.inc -SRC_URI_append = "file://fortran-cross-compile-hack.patch" - ARCH_FLAGS_FOR_TARGET += "-isystem${STAGING_INCDIR}" EXTRA_OECONF += "--disable-libunwind-exceptions" |