diff options
Diffstat (limited to 'meta/recipes-support/libgcrypt/files/0003-tests-bench-slope.c-workaround-ICE-failure-on-mips-w.patch')
-rw-r--r-- | meta/recipes-support/libgcrypt/files/0003-tests-bench-slope.c-workaround-ICE-failure-on-mips-w.patch | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/meta/recipes-support/libgcrypt/files/0003-tests-bench-slope.c-workaround-ICE-failure-on-mips-w.patch b/meta/recipes-support/libgcrypt/files/0003-tests-bench-slope.c-workaround-ICE-failure-on-mips-w.patch new file mode 100644 index 0000000000..105df2957e --- /dev/null +++ b/meta/recipes-support/libgcrypt/files/0003-tests-bench-slope.c-workaround-ICE-failure-on-mips-w.patch @@ -0,0 +1,79 @@ +From 7cc702c7b5a1ccc2b0091f3effa1391b6c3030fd Mon Sep 17 00:00:00 2001 +From: Hongxu Jia <hongxu.jia@windriver.com> +Date: Wed, 16 Aug 2017 10:46:28 +0800 +Subject: [PATCH 3/4] 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<ARRAY_SIZE_MAX) + { + printf("%s\n", pStrArry[i]); + i++; + } + + return 0; +} + +END + +2. Only -O1 and -g on mips caused the issue: +$ mips-poky-linux-gcc -O1 -g -o mipgcc-test mipgcc-test.c +mipgcc-test.c: In function 'main': +mipgcc-test.c:18:1: internal compiler error: in dwarf2out_var_location, +at dwarf2out.c:20810 + } + ^ +Please submit a full bug report, +with preprocessed source if appropriate. +See <http://gcc.gnu.org/bugs.html> 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: Inappropriate [oe specific] + +Rebase to 1.8.0 +Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> +--- + 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 75e6e43..4e70842 100644 +--- a/tests/bench-slope.c ++++ b/tests/bench-slope.c +@@ -1463,7 +1463,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}, + }; +@@ -1629,7 +1629,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.3.1 + |