* negative repeat count for x examines backwards * fortran: support structs/arrays with dynamically types fields * support MPX bound checking * support for the Rust language * 'catch syscall' now can catch groups of related syscalls * New (sub)commands: - skip {-file,-gfile,-function,-rfunction}: generic skip mechanism - maint {selftest,info line-table} - new-ui: create new user interface for GUI clients * (fast) tracepoints on s390x and ppc64le added to gdbserver * New target Andes NDS32 - Remove patch gdb-aarch64-v81-hwbreakpoints.diff (upstream) - Add patches from Fedora package: gdb-6.7-testsuite-stable-results.patch gdb-add-index-chmod.patch gdb-bison-old.patch gdb-container-rh-pkg.patch gdb-libexec-add-index.patch gdb-linux_perf-bundle.patch gdb-physname-pr11734-test.patch gdb-physname-pr12273-test.patch gdb-rhbz1007614-memleak-infpy_read_memory-test.patch gdb-rhbz1084404-ppc64-s390x-wrong-prologue-skip-O2-g-3of3.patch gdb-rhbz1149205-catch-syscall-after-fork-test.patch gdb-rhbz1156192-recursive-dlopen-test.patch gdb-rhbz1186476-internal-error-unqualified-name-re-set-test.patch gdb-rhbz1350436-type-printers-error.patch gdb-test-ivy-bridge.patch OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gdb?expand=0&rev=151
84 lines
3.1 KiB
Diff
84 lines
3.1 KiB
Diff
http://sourceware.org/ml/gdb-patches/2016-10/msg00652.html
|
|
Subject: [testsuite patch] Fix false FAIL for gdb.base/morestack.exp
|
|
|
|
|
|
--HlL+5n6rz5pIUxbD
|
|
Content-Type: text/plain; charset=us-ascii
|
|
Content-Disposition: inline
|
|
|
|
Hi,
|
|
|
|
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
|
|
#0 0x00007ffff787c7bb in malloc_consolidate (av=av@entry=0x7ffff7bbcb00 <main_arena>) at malloc.c:4181
|
|
#1 0x00007ffff787f235 in _int_malloc (av=av@entry=0x7ffff7bbcb00 <main_arena>, bytes=bytes@entry=1024) at malloc.c:3448
|
|
[...]
|
|
#8 0x00007ffff784c5ac in _IO_vfprintf_internal (s=0x7ffff7bbd600 <_IO_2_1_stdout_>, format=<optimized out>, ap=ap@entry=0x7ffff77fd7f8) at vfprintf.c:1631
|
|
#9 0x00007ffff7853939 in __printf (format=<optimized out>) at printf.c:33
|
|
#10 0x0000000000400d6b in down ()
|
|
#11 0x0000000000400f2c in __morestack ()
|
|
#12 0x0000000000400dda in down ()
|
|
[...]
|
|
|
|
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.
|
|
|
|
Personally I do not understand why gold is not the default linker as GNU ld is
|
|
unusably slow (6x) for C++ but that is off-topic here.
|
|
|
|
OK for check-in?
|
|
|
|
|
|
Thanks,
|
|
Jan
|
|
|
|
--HlL+5n6rz5pIUxbD
|
|
Content-Type: text/plain; charset=us-ascii
|
|
Content-Disposition: inline; filename=1
|
|
|
|
gdb/testsuite/ChangeLog
|
|
2016-10-22 Jan Kratochvil <jan.kratochvil@redhat.com>
|
|
|
|
* gdb.base/morestack.exp: Try to build it using -fuse-ld=gold first.
|
|
|
|
diff --git a/gdb/testsuite/gdb.base/morestack.exp b/gdb/testsuite/gdb.base/morestack.exp
|
|
index 12f5d28..caa85b8 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 otherise. 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
|
|
}
|
|
|
|
|
|
--HlL+5n6rz5pIUxbD--
|
|
|