From 4af0c70c70809c8f03d7ba14745d79e3c6e35b2e Mon Sep 17 00:00:00 2001 From: Hongxu Jia Date: Fri, 30 May 2014 10:20:19 +0800 Subject: libgcrypt: workaround ICE failure on mips with '-O -g' Hit a ICE and could reduce it to the following minimal example: 1. Only the size of array assigned with 2 caused the issue: $ cat > mipgcc-test.c << END int main (int argc, char **argv) { char *pStrArry[ARRAY_SIZE_MAX] = {"hello"}; int i = 0; while(pStrArry[i] && i for instructions [YOCTO #6034] 3. The quick workround is trying to enlarge the size of array with larger than 2. 4. File a bug to GNU, but it could not be reproduced on there environment. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60643 Signed-off-by: Hongxu Jia Signed-off-by: Saul Wold --- ...x-ICE-failure-on-mips-with-option-O-and-g.patch | 71 ++++++++++++++++++++++ meta/recipes-support/libgcrypt/libgcrypt.inc | 4 +- 2 files changed, 74 insertions(+), 1 deletion(-) create mode 100644 meta/recipes-support/libgcrypt/files/fix-ICE-failure-on-mips-with-option-O-and-g.patch diff --git a/meta/recipes-support/libgcrypt/files/fix-ICE-failure-on-mips-with-option-O-and-g.patch b/meta/recipes-support/libgcrypt/files/fix-ICE-failure-on-mips-with-option-O-and-g.patch new file mode 100644 index 0000000000..56c591f06e --- /dev/null +++ b/meta/recipes-support/libgcrypt/files/fix-ICE-failure-on-mips-with-option-O-and-g.patch @@ -0,0 +1,71 @@ +tests/bench-slope.c: workaround ICE failure on mips with '-O -g' + +Hit a ICE and could reduce it to the following minimal example: + +1. Only the size of array assigned with 2 caused the issue: +$ cat > mipgcc-test.c << END + +int main (int argc, char **argv) +{ + char *pStrArry[ARRAY_SIZE_MAX] = {"hello"}; + int i = 0; + + while(pStrArry[i] && i for instructions + +3. The quick workround is trying to enlarge the size of array with larger +than 2. + +4. File a bug to GNU, but it could not be reproduced on there environment. +http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60643 + +Upstream-Status: [oe specific] + +Signed-off-by: Hongxu Jia +--- + tests/bench-slope.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/tests/bench-slope.c b/tests/bench-slope.c +index bd05064..28c2438 100644 +--- a/tests/bench-slope.c ++++ b/tests/bench-slope.c +@@ -1197,7 +1197,7 @@ static struct bench_ops hash_ops = { + }; + + +-static struct bench_hash_mode hash_modes[] = { ++static struct bench_hash_mode hash_modes[3] = { + {"", &hash_ops}, + {0}, + }; +@@ -1349,7 +1349,7 @@ static struct bench_ops mac_ops = { + }; + + +-static struct bench_mac_mode mac_modes[] = { ++static struct bench_mac_mode mac_modes[3] = { + {"", &mac_ops}, + {0}, + }; +-- +1.8.1.2 + diff --git a/meta/recipes-support/libgcrypt/libgcrypt.inc b/meta/recipes-support/libgcrypt/libgcrypt.inc index 8afa945648..e3cd4f8a8b 100644 --- a/meta/recipes-support/libgcrypt/libgcrypt.inc +++ b/meta/recipes-support/libgcrypt/libgcrypt.inc @@ -12,7 +12,9 @@ DEPENDS = "libgpg-error libcap" SRC_URI = "ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-${PV}.tar.gz \ file://add-pkgconfig-support.patch \ - file://libgcrypt-fix-building-error-with-O2-in-sysroot-path.patch" + file://libgcrypt-fix-building-error-with-O2-in-sysroot-path.patch \ + file://fix-ICE-failure-on-mips-with-option-O-and-g.patch \ +" inherit autotools-brokensep texinfo binconfig pkgconfig -- cgit 1.2.3-korg