summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/gcc
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2012-01-19 19:22:44 (GMT)
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-01-23 09:01:38 (GMT)
commit280e5fd212e48f1b32d3fe01df38b1918bf97006 (patch)
tree3f9d39d428b4b6bbec99d0a6737142d10e480ec2 /meta/recipes-devtools/gcc
parent76c16c4fa8c956b6a248b8fb3662b8027e28bc00 (diff)
downloadpoky-280e5fd212e48f1b32d3fe01df38b1918bf97006.tar.gz
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. (From OE-Core rev: 2c4569801a710f34a695b8d2a0ee7fc127fb34e4) 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.inc1
-rw-r--r--meta/recipes-devtools/gcc/gcc-common.inc17
-rw-r--r--meta/recipes-devtools/gcc/gcc-configure-common.inc15
-rw-r--r--meta/recipes-devtools/gcc/gcc-runtime_4.6.bb2
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 4bbb2d2..a76fa0b 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 \
73 file://pr47551.patch \ 73 file://pr47551.patch \
74 file://gcc-arm-set-cost.patch \ 74 file://gcc-arm-set-cost.patch \
75 file://GPLUSPLUS_INCLUDE_DIR_with_sysroot.patch \ 75 file://GPLUSPLUS_INCLUDE_DIR_with_sysroot.patch \
76 file://fortran-cross-compile-hack.patch \
76 " 77 "
77 78
78SRC_URI_append_sh3 = " file://sh3-installfix-fixheaders.patch " 79SRC_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 fe112d9..ed41b0f 100644
--- a/meta/recipes-devtools/gcc/gcc-common.inc
+++ b/meta/recipes-devtools/gcc/gcc-common.inc
@@ -88,3 +88,20 @@ python workshared_clean () {
88 bb.note("Removing " + dir) 88 bb.note("Removing " + dir)
89 oe.path.remove(dir) 89 oe.path.remove(dir)
90} 90}
91
92do_headerfix () {
93 # Change the default dynamic linker path, in case $base_liddir is non-standard
94 # (e.g. in multilib or sdk cases)
95 #
96 # We want something like the following:
97 # #define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"
98 # becomes
99 # #define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld-linux-x86-64.so.2"
100 #
101 sed -i ${S}/gcc/config/*/linux*.h -e \
102 's#\(GLIBC_DYNAMIC_LINKER[^ ]*\) \( *"/lib.*\)/\(.*\)#\1 SYSTEMLIBS_DIR "\3#'
103}
104
105addtask headerfix after do_unpack before do_patch
106
107do_headerfix[vardepvalue] = "PATH"
diff --git a/meta/recipes-devtools/gcc/gcc-configure-common.inc b/meta/recipes-devtools/gcc/gcc-configure-common.inc
index d014980..c4b6ac1 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}"
62SYSTEMLIBS = "${target_base_libdir}/" 62SYSTEMLIBS = "${target_base_libdir}/"
63SYSTEMLIBS1 = "${target_libdir}/" 63SYSTEMLIBS1 = "${target_libdir}/"
64 64
65do_headerfix () {
66 # Change the default dynamic linker path, in case $base_liddir is non-standard
67 # (e.g. in multilib or sdk cases)
68 #
69 # We want something like the following:
70 # #define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"
71 # becomes
72 # #define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld-linux-x86-64.so.2"
73 #
74 sed -i ${S}/gcc/config/*/linux*.h -e \
75 's#\(GLIBC_DYNAMIC_LINKER[^ ]*\) \( *"/lib.*\)/\(.*\)#\1 SYSTEMLIBS_DIR "\3#'
76}
77
78addtask headerfix after do_unpack before do_patch
79
80do_configure_prepend () { 65do_configure_prepend () {
81 # teach gcc to find correct target includedir when checking libc ssp support 66 # teach gcc to find correct target includedir when checking libc ssp support
82 mkdir -p ${B}/gcc 67 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 568b5af..97468db 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
2require gcc-configure-runtime.inc 2require gcc-configure-runtime.inc
3require gcc-package-runtime.inc 3require gcc-package-runtime.inc
4 4
5SRC_URI_append = "file://fortran-cross-compile-hack.patch"
6
7ARCH_FLAGS_FOR_TARGET += "-isystem${STAGING_INCDIR}" 5ARCH_FLAGS_FOR_TARGET += "-isystem${STAGING_INCDIR}"
8 6
9EXTRA_OECONF += "--disable-libunwind-exceptions" 7EXTRA_OECONF += "--disable-libunwind-exceptions"