diff options
author | Jan Kratochvil <jan.kratochvil@redhat.com> | 2016-10-24 14:13:51 +0200 |
---|---|---|
committer | Jan Kratochvil <jan.kratochvil@redhat.com> | 2016-10-24 14:13:51 +0200 |
commit | b8d38ee4250fb6ad001c2f03fa2cef8c2bc06b57 (patch) | |
tree | 748338dcce2f8ba82886b9204f375b96ebc054fc /gdb/testsuite | |
parent | cb93dc7f262978bafe36397a41a56e409a302042 (diff) | |
download | gdb-b8d38ee4250fb6ad001c2f03fa2cef8c2bc06b57.zip gdb-b8d38ee4250fb6ad001c2f03fa2cef8c2bc06b57.tar.gz gdb-b8d38ee4250fb6ad001c2f03fa2cef8c2bc06b57.tar.bz2 |
testsuite: Fix false FAIL for gdb.base/morestack.exp
Since
[commit] [testsuite patch] Fix gcc_compiled for gcc 6 & 7
https://sourceware.org/ml/gdb-patches/2016-10/msg00620.html
there has started running again
Running gdb/testsuite/gdb.base/morestack.exp ...
+FAIL: gdb.base/morestack.exp: continue
+PASS: gdb.base/morestack.exp: up 3000
but as you can see it FAILs now - on Fedora 24 x86_64 (although for example it
still PASSes on CentOS-7.2 x86_64).
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff787c7bb in malloc_consolidate (av=av@entry=0x7ffff7bbcb00 <main_arena>) at malloc.c:4181
4181 unlink(av, nextchunk, bck, fwd);
(gdb) bt
[...]
[...]
This apparently is due to - man gcc - -fsplit-stack:
When code compiled with -fsplit-stack calls code compiled without
-fsplit-stack, there may not be much stack space available for the
latter code to run. If compiling all code, including library code,
with -fsplit-stack is not an option, then the linker can fix up these
calls so that the code compiled without -fsplit-stack always has
a large stack. Support for this is implemented in the gold linker in
GNU binutils release 2.21 and later.
gdb/testsuite/ChangeLog
2016-10-24 Jan Kratochvil <jan.kratochvil@redhat.com>
* gdb.base/morestack.exp: Try to build it using -fuse-ld=gold first.
Diffstat (limited to 'gdb/testsuite')
-rw-r--r-- | gdb/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/morestack.exp | 6 |
2 files changed, 9 insertions, 1 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index c8709b7..460e6b9 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2016-10-24 Jan Kratochvil <jan.kratochvil@redhat.com> + + * gdb.base/morestack.exp: Try to build it using -fuse-ld=gold first. + 2016-10-20 Jan Kratochvil <jan.kratochvil@redhat.com> * lib/gdb.exp (get_compiler_info): Generalize gcc_compile regexp. diff --git a/gdb/testsuite/gdb.base/morestack.exp b/gdb/testsuite/gdb.base/morestack.exp index 12f5d28..fb9bbf3 100644 --- a/gdb/testsuite/gdb.base/morestack.exp +++ b/gdb/testsuite/gdb.base/morestack.exp @@ -23,7 +23,11 @@ if {$gcc_compiled == 0} { standard_testfile -if { [prepare_for_testing ${testfile}.exp ${testfile} $srcfile {additional_flags=-fsplit-stack}] } { +# -fuse-ld=gold is used for calling printf code built without -fsplit-stack +# which could crash otherwise. See GCC documentation of -fsplit-stack. +set opts "additional_flags=-fsplit-stack" +if { [prepare_for_testing ${testfile}.exp ${testfile} $srcfile [list $opts additional_flags=-fuse-ld=gold]] \ + && [prepare_for_testing ${testfile}.exp ${testfile} $srcfile $opts] } { return -1 } |